Spaces:
Configuration error
Configuration error
File size: 1,413 Bytes
abe4f0d cabfcc4 1f7dd45 cabfcc4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 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)
}
|