pw_reset_token.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package test
  2. import (
  3. "errors"
  4. "github.com/porter-dev/porter/internal/models"
  5. "github.com/porter-dev/porter/internal/repository"
  6. "gorm.io/gorm"
  7. )
  8. // PWResetTokenRepository uses gorm.DB for querying the database
  9. type PWResetTokenRepository struct {
  10. canQuery bool
  11. pwResetTokens []*models.PWResetToken
  12. }
  13. // NewPWResetTokenRepository returns a PWResetTokenRepository which uses
  14. // gorm.DB for querying the database
  15. func NewPWResetTokenRepository(canQuery bool) repository.PWResetTokenRepository {
  16. return &PWResetTokenRepository{canQuery, []*models.PWResetToken{}}
  17. }
  18. // CreatePWResetToken creates a new invite
  19. func (repo *PWResetTokenRepository) CreatePWResetToken(a *models.PWResetToken) (*models.PWResetToken, error) {
  20. if !repo.canQuery {
  21. return nil, errors.New("Cannot write database")
  22. }
  23. repo.pwResetTokens = append(repo.pwResetTokens, a)
  24. a.ID = uint(len(repo.pwResetTokens))
  25. return a, nil
  26. }
  27. // ReadPWResetToken gets an auth code object specified by the unique code
  28. func (repo *PWResetTokenRepository) ReadPWResetToken(id uint) (*models.PWResetToken, error) {
  29. if !repo.canQuery {
  30. return nil, errors.New("Cannot read from database")
  31. }
  32. if int(id-1) >= len(repo.pwResetTokens) || repo.pwResetTokens[id-1] == nil {
  33. return nil, gorm.ErrRecordNotFound
  34. }
  35. index := int(id - 1)
  36. return repo.pwResetTokens[index], nil
  37. }
  38. // UpdatePWResetToken modifies an existing PWResetToken in the database
  39. func (repo *PWResetTokenRepository) UpdatePWResetToken(
  40. pwToken *models.PWResetToken,
  41. ) (*models.PWResetToken, error) {
  42. if !repo.canQuery {
  43. return nil, errors.New("Cannot write database")
  44. }
  45. if int(pwToken.ID-1) >= len(repo.pwResetTokens) || repo.pwResetTokens[pwToken.ID-1] == nil {
  46. return nil, gorm.ErrRecordNotFound
  47. }
  48. index := int(pwToken.ID - 1)
  49. repo.pwResetTokens[index] = pwToken
  50. return pwToken, nil
  51. }