Files
hanko/backend/test/jwk_persister.go
2022-06-21 12:36:11 +02:00

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
}