Spaces:
Configuration error
Configuration error
| package email_controller | |
| import ( | |
| "net/http" | |
| "api.qobiltu.id/middleware" | |
| "api.qobiltu.id/models" | |
| "api.qobiltu.id/response" | |
| "api.qobiltu.id/services" | |
| "github.com/gin-gonic/gin" | |
| ) | |
| type EmailController interface { | |
| CreateEmailVerification(ctx *gin.Context) | |
| Verify(ctx *gin.Context) | |
| } | |
| type emailController struct { | |
| emailService services.EmailService | |
| } | |
| func NewEmailController(emailService services.EmailService) EmailController { | |
| return &emailController{ | |
| emailService: emailService, | |
| } | |
| } | |
| func (c *emailController) CreateEmailVerification(ctx *gin.Context) { | |
| accountData := middleware.GetAccountData(ctx) | |
| req := models.CreateEmailVerificationRequest{ | |
| AccountID: int64(accountData.UserID), | |
| } | |
| res, err := c.emailService.CreateEmailVerification(ctx, &req) | |
| if err != nil { | |
| response.HandleError(ctx, err) | |
| return | |
| } | |
| response.HandleSuccess(ctx, http.StatusOK, "Email verification created", res, nil) | |
| } | |
| func (c *emailController) Verify(ctx *gin.Context) { | |
| var req models.ValidateEmailVerificationRequest | |
| if err := ctx.ShouldBindJSON(&req); err != nil { | |
| response.HandleError(ctx, err) | |
| return | |
| } | |
| accountData := middleware.GetAccountData(ctx) | |
| req.AccountID = int64(accountData.UserID) | |
| res, err := c.emailService.ValidateEmailVerification(ctx, &req) | |
| if err != nil { | |
| response.HandleError(ctx, err) | |
| return | |
| } | |
| response.HandleSuccess(ctx, http.StatusOK, "Email verified", res, nil) | |
| } | |