package register import ( "git.linuxforward.com/byom/byom-onboard/internal/common/models" "git.linuxforward.com/byom/byom-onboard/internal/platform/database" "git.linuxforward.com/byom/byom-onboard/internal/platform/mailer" "github.com/gin-gonic/gin" ) type Handler struct { registrationService RegistrationService mailer *mailer.Mailer db *database.Database } func NewHandler(client RegistrationService, mailerClient *mailer.Mailer, db *database.Database) *Handler { return &Handler{ registrationService: client, mailer: mailerClient, db: db, } } func (h *Handler) Register(c *gin.Context) { var req models.User if err := c.ShouldBindJSON(&req); err != nil { c.JSON(400, gin.H{"error": err.Error()}) return } if err := h.registrationService.InitiateRegistration(&req); err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } c.JSON(200, gin.H{"message": "Registration initiated successfully"}) } func (h *Handler) ValidateEmail(c *gin.Context) { token := c.Query("token") result, err := h.registrationService.ValidateEmail(token) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } c.JSON(200, result) }