mirror of
https://github.com/teamhanko/hanko.git
synced 2025-10-27 14:17:56 +08:00
53 lines
979 B
Go
53 lines
979 B
Go
package test
|
|
|
|
import (
|
|
"github.com/teamhanko/hanko/backend/persistence"
|
|
"github.com/teamhanko/hanko/backend/persistence/models"
|
|
)
|
|
|
|
func NewJwkPersister(init []models.Jwk) persistence.JwkPersister {
|
|
if init == nil {
|
|
return &jwkPersister{[]models.Jwk{}}
|
|
}
|
|
return &jwkPersister{append([]models.Jwk{}, init...)}
|
|
}
|
|
|
|
type jwkPersister struct {
|
|
keys []models.Jwk
|
|
}
|
|
|
|
func (j *jwkPersister) Get(id int) (*models.Jwk, error) {
|
|
var found *models.Jwk
|
|
for _, data := range j.keys {
|
|
if data.ID == id {
|
|
d := data
|
|
found = &d
|
|
}
|
|
}
|
|
return found, nil
|
|
}
|
|
|
|
func (j *jwkPersister) GetAll() ([]models.Jwk, error) {
|
|
return j.keys, nil
|
|
}
|
|
|
|
func (j *jwkPersister) GetLast() (*models.Jwk, error) {
|
|
l := len(j.keys)
|
|
if l == 0 {
|
|
return nil, nil
|
|
}
|
|
return &j.keys[l-1], nil
|
|
}
|
|
|
|
func (j *jwkPersister) Create(jwk models.Jwk) error {
|
|
lastId := 0
|
|
for _, key := range j.keys {
|
|
if key.ID > lastId {
|
|
lastId = key.ID
|
|
}
|
|
}
|
|
jwk.ID = lastId
|
|
j.keys = append(j.keys, jwk)
|
|
return nil
|
|
}
|