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

55 lines
1.1 KiB
Go

package test
import (
"github.com/gofrs/uuid"
"github.com/teamhanko/hanko/backend/persistence"
"github.com/teamhanko/hanko/backend/persistence/models"
)
func NewPasscodePersister(init []models.Passcode) persistence.PasscodePersister {
return &passcodePersister{append([]models.Passcode{}, init...)}
}
type passcodePersister struct {
passcodes []models.Passcode
}
func (p *passcodePersister) Get(id uuid.UUID) (*models.Passcode, error) {
var found *models.Passcode
for _, data := range p.passcodes {
if data.ID == id {
d := data
found = &d
}
}
return found, nil
}
func (p *passcodePersister) Create(passcode models.Passcode) error {
p.passcodes = append(p.passcodes, passcode)
return nil
}
func (p *passcodePersister) Update(passcode models.Passcode) error {
for i, data := range p.passcodes {
if data.ID == passcode.ID {
p.passcodes[i] = passcode
}
}
return nil
}
func (p *passcodePersister) Delete(passcode models.Passcode) error {
index := -1
for i, data := range p.passcodes {
if data.ID == passcode.ID {
index = i
}
}
if index > -1 {
p.passcodes = append(p.passcodes[:index], p.passcodes[index+1:]...)
}
return nil
}