register.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package database
  2. import (
  3. "git.linuxforward.com/byom/byom-onboard/internal/common/models"
  4. "github.com/google/uuid"
  5. )
  6. func (d *Database) RegisterUser(user *models.User) error {
  7. // Save registration details to database
  8. err := d.db.Create(user).Error
  9. if err != nil {
  10. return err
  11. }
  12. return nil
  13. }
  14. // Add function to verify email token using email and token
  15. func (d *Database) VerifyEmailToken(email, token string) error {
  16. // Verify the email token
  17. err := d.db.Where("email = ? AND token = ?", email, token).First(&models.User{}).Error
  18. if err != nil {
  19. return err
  20. }
  21. return nil
  22. }
  23. func (d *Database) ChangeSubscriptionStatus(email string) error {
  24. // Change the status of the user to active
  25. user, err := d.getUserByEmail(email)
  26. if err != nil {
  27. return err
  28. }
  29. user.ID = uuid.New().String()
  30. user.Status = true
  31. err = d.updateUser(user)
  32. if err != nil {
  33. return err
  34. }
  35. return nil
  36. }
  37. func (d *Database) getUserByEmail(email string) (*models.User, error) {
  38. var user *models.User
  39. err := d.db.Where("email = ?", email).First(&user).Error
  40. if err != nil {
  41. return nil, err
  42. }
  43. return user, nil
  44. }
  45. func (d *Database) updateUser(user *models.User) error {
  46. err := d.db.Save(user).Error
  47. if err != nil {
  48. return err
  49. }
  50. return nil
  51. }