mirror of
https://github.com/teamhanko/hanko.git
synced 2025-10-28 14:47:13 +08:00
55 lines
1.1 KiB
Go
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
|
|
}
|