12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package register
- import (
- "time"
- "git.linuxforward.com/byom/byom-onboard/internal/common/jwt"
- "git.linuxforward.com/byom/byom-onboard/internal/common/models"
- "git.linuxforward.com/byom/byom-onboard/internal/platform/database"
- "github.com/google/uuid"
- )
- type registrationService struct {
- db *database.Database
- jwt *jwt.JWTClient
- }
- func NewRegistrationService(db *database.Database, jwt *jwt.JWTClient) RegistrationService {
- return ®istrationService{
- db: db,
- jwt: jwt,
- }
- }
- func (s *registrationService) InitiateRegistration(user *models.User) error {
- // Generate email token
- token, err := s.jwt.GenerateEmailVerificationToken(user.Email)
- if err != nil {
- return err
- }
- user.Token = token
- user.Status = false
- // Save registration details to database
- if err := s.db.RegisterUser(user); err != nil {
- return err
- }
- // Send email
- if err := s.SendEmail(); err != nil {
- return err
- }
- return nil
- }
- func (s *registrationService) SendEmail() error {
- // Send email
- return nil
- }
- func (s *registrationService) ValidateEmail(token string) (*ValidationResult, error) {
- email, err := s.jwt.VerifyEmailToken(token)
- if err != nil {
- return nil, err
- }
- // Validate email
- if err := s.db.ChangeSubscriptionStatus(email); err != nil {
- return nil, err
- }
- // For now, return a dummy validation result
- return &ValidationResult{
- Email: email, // This should come from token validation
- ValidatedAt: time.Now(),
- SessionToken: uuid.New().String(),
- }, nil
- }
- func (s *registrationService) CreateSessionToken(email string) (string, error) {
- return uuid.New().String(), nil
- }
|