cred_exchange_token.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. type CredentialsExchangeTokenRepository struct {
  9. canQuery bool
  10. ceTokens []*models.CredentialsExchangeToken
  11. }
  12. func NewCredentialsExchangeTokenRepository(canQuery bool) repository.CredentialsExchangeTokenRepository {
  13. return &CredentialsExchangeTokenRepository{canQuery, []*models.CredentialsExchangeToken{}}
  14. }
  15. func (repo *CredentialsExchangeTokenRepository) CreateCredentialsExchangeToken(
  16. a *models.CredentialsExchangeToken,
  17. ) (*models.CredentialsExchangeToken, error) {
  18. if !repo.canQuery {
  19. return nil, errors.New("Cannot write database")
  20. }
  21. repo.ceTokens = append(repo.ceTokens, a)
  22. a.ID = uint(len(repo.ceTokens))
  23. return a, nil
  24. }
  25. // ReadPWResetToken gets an auth code object specified by the unique code
  26. func (repo *CredentialsExchangeTokenRepository) ReadCredentialsExchangeToken(id uint) (*models.CredentialsExchangeToken, error) {
  27. if !repo.canQuery {
  28. return nil, errors.New("Cannot read from database")
  29. }
  30. if int(id-1) >= len(repo.ceTokens) || repo.ceTokens[id-1] == nil {
  31. return nil, gorm.ErrRecordNotFound
  32. }
  33. index := int(id - 1)
  34. return repo.ceTokens[index], nil
  35. }