handler.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package register
  2. import (
  3. "git.linuxforward.com/byom/byom-onboard/internal/common/models"
  4. "git.linuxforward.com/byom/byom-onboard/internal/platform/database"
  5. "git.linuxforward.com/byom/byom-onboard/internal/platform/mailer"
  6. "github.com/gin-gonic/gin"
  7. )
  8. type Handler struct {
  9. registrationService RegistrationService
  10. mailer *mailer.Mailer
  11. db *database.Database
  12. }
  13. func NewHandler(client RegistrationService, mailerClient *mailer.Mailer, db *database.Database) *Handler {
  14. return &Handler{
  15. registrationService: client,
  16. mailer: mailerClient,
  17. db: db,
  18. }
  19. }
  20. func (h *Handler) Register(c *gin.Context) {
  21. var req models.User
  22. if err := c.ShouldBindJSON(&req); err != nil {
  23. c.JSON(400, gin.H{"error": err.Error()})
  24. return
  25. }
  26. if err := h.registrationService.InitiateRegistration(&req); err != nil {
  27. c.JSON(500, gin.H{"error": err.Error()})
  28. return
  29. }
  30. c.JSON(200, gin.H{"message": "Registration initiated successfully"})
  31. }
  32. func (h *Handler) ValidateEmail(c *gin.Context) {
  33. token := c.Query("token")
  34. result, err := h.registrationService.ValidateEmail(token)
  35. if err != nil {
  36. c.JSON(500, gin.H{"error": err.Error()})
  37. return
  38. }
  39. c.JSON(200, result)
  40. }