feat: add middleware to kyc route

This commit is contained in:
2025-09-16 11:35:36 +03:30
parent 7a365f57ec
commit f0914bcad9
6 changed files with 50 additions and 43 deletions
+6 -1
View File
@@ -43,7 +43,6 @@ type OTPVerifyResponse struct {
}
type KYCVerifyRequest struct {
UserID string `json:"userId" validate:"required,uuid"`
NationalID string `json:"nationalId" validate:"required"`
BirthDate string `json:"birthDate" validate:"required"`
}
@@ -51,3 +50,9 @@ type KYCVerifyRequest struct {
type KYCVerifyResponse struct {
Message string `json:"message"`
}
type APIResponse struct {
Success bool `json:"success"`
Message string `json:"message"`
Data any `json:"data,omitempty"`
}
+6 -4
View File
@@ -2,6 +2,7 @@ package http
import (
"backend/internal/api/dto"
"backend/internal/api/http/middlewares"
"backend/internal/usecase"
"github.com/gofiber/fiber/v2"
@@ -160,7 +161,7 @@ func (h *AuthHandler) VerifyOTP(c *fiber.Ctx) error {
// @Accept json
// @Produce json
// @Param request body dto.KYCVerifyRequest true "KYC Verify Request"
// @Success 200 {object} dto.KYCVerifyResponse
// @Success 200 {object} dto.APIResponse
// @Failure 400 {object} map[string]string
// @Failure 500 {object} map[string]string
// @Router /auth/kyc [post]
@@ -171,15 +172,16 @@ func (h *AuthHandler) VerifyKYC(c *fiber.Ctx) error {
"error": "invalid request body",
})
}
err := h.authService.VerifyKYC(c.Context(), req.UserID, req.NationalID, req.BirthDate)
claims := middlewares.GetUserClaims(c)
err := h.authService.VerifyKYC(c.Context(), claims.UserID, req.NationalID, req.BirthDate)
if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": err.Error(),
})
}
return c.Status(fiber.StatusOK).JSON(dto.KYCVerifyResponse{
return c.Status(fiber.StatusOK).JSON(dto.APIResponse{
Success: true,
Message: "KYC verified successfully",
})
}
+1 -1
View File
@@ -53,5 +53,5 @@ func registerPublicRoutes(router fiber.Router, app *app.AppContainer) {
authgroup.Post("/otp", authHandler.SendOTP)
authgroup.Post("/verify", authHandler.VerifyOTP)
// add JWT middleware for KYC
authgroup.Post("/kyc", authHandler.VerifyKYC)
authgroup.Post("/kyc", middlewares.JWTAuthMiddleware([]byte("Secret")), authHandler.VerifyKYC)
}