54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package handler
|
|
|
|
import (
|
|
"rijig/dto"
|
|
"rijig/internal/services"
|
|
"rijig/utils"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
type AuthHandler struct {
|
|
authService services.AuthService
|
|
}
|
|
|
|
func NewAuthHandler(authService services.AuthService) *AuthHandler {
|
|
return &AuthHandler{
|
|
authService: authService,
|
|
}
|
|
}
|
|
|
|
func (h *AuthHandler) Register(c *fiber.Ctx) error {
|
|
var request dto.RegisterRequest
|
|
|
|
if err := c.BodyParser(&request); err != nil {
|
|
return utils.ValidationErrorResponse(c, map[string][]string{"body": {"invalid request body"}})
|
|
}
|
|
|
|
if errors, valid := request.Validate(); !valid {
|
|
return utils.ValidationErrorResponse(c, errors)
|
|
}
|
|
|
|
err := h.authService.RegisterUser(&request)
|
|
if err != nil {
|
|
return utils.ErrorResponse(c, err.Error())
|
|
}
|
|
|
|
return utils.SuccessResponse(c, nil, "OTP has been sent to your phone")
|
|
}
|
|
|
|
func (h *AuthHandler) VerifyOTP(c *fiber.Ctx) error {
|
|
var request dto.VerifyOTPRequest
|
|
|
|
if err := c.BodyParser(&request); err != nil {
|
|
return utils.ValidationErrorResponse(c, map[string][]string{"body": {"invalid request body"}})
|
|
}
|
|
|
|
err := h.authService.VerifyOTP(&request)
|
|
if err != nil {
|
|
return utils.ErrorResponse(c, err.Error())
|
|
}
|
|
|
|
return utils.SuccessResponse(c, nil, "User successfully registered")
|
|
}
|