diff --git a/docs/docs.go b/docs/docs.go index 42e8724..3cb4461 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -147,7 +147,7 @@ const docTemplate = `{ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/dto.KYCVerifyResponse" + "$ref": "#/definitions/dto.APIResponse" } }, "400": { @@ -225,6 +225,18 @@ const docTemplate = `{ } }, "definitions": { + "dto.APIResponse": { + "type": "object", + "properties": { + "data": {}, + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + } + }, "dto.AuthenticateRequest": { "type": "object", "required": [ @@ -283,8 +295,7 @@ const docTemplate = `{ "type": "object", "required": [ "birthDate", - "nationalId", - "userId" + "nationalId" ], "properties": { "birthDate": { @@ -292,17 +303,6 @@ const docTemplate = `{ }, "nationalId": { "type": "string" - }, - "userId": { - "type": "string" - } - } - }, - "dto.KYCVerifyResponse": { - "type": "object", - "properties": { - "message": { - "type": "string" } } }, diff --git a/docs/swagger.json b/docs/swagger.json index 4bc4404..050fc77 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -136,7 +136,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/dto.KYCVerifyResponse" + "$ref": "#/definitions/dto.APIResponse" } }, "400": { @@ -214,6 +214,18 @@ } }, "definitions": { + "dto.APIResponse": { + "type": "object", + "properties": { + "data": {}, + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + } + }, "dto.AuthenticateRequest": { "type": "object", "required": [ @@ -272,8 +284,7 @@ "type": "object", "required": [ "birthDate", - "nationalId", - "userId" + "nationalId" ], "properties": { "birthDate": { @@ -281,17 +292,6 @@ }, "nationalId": { "type": "string" - }, - "userId": { - "type": "string" - } - } - }, - "dto.KYCVerifyResponse": { - "type": "object", - "properties": { - "message": { - "type": "string" } } }, diff --git a/docs/swagger.yaml b/docs/swagger.yaml index c270d37..4e4d110 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1,4 +1,12 @@ definitions: + dto.APIResponse: + properties: + data: {} + message: + type: string + success: + type: boolean + type: object dto.AuthenticateRequest: properties: pubKey: @@ -40,17 +48,9 @@ definitions: type: string nationalId: type: string - userId: - type: string required: - birthDate - nationalId - - userId - type: object - dto.KYCVerifyResponse: - properties: - message: - type: string type: object dto.OTPProviderReq: properties: @@ -166,7 +166,7 @@ paths: "200": description: OK schema: - $ref: '#/definitions/dto.KYCVerifyResponse' + $ref: '#/definitions/dto.APIResponse' "400": description: Bad Request schema: diff --git a/internal/api/dto/auth.go b/internal/api/dto/auth.go index 6039b9b..ebdf4ca 100644 --- a/internal/api/dto/auth.go +++ b/internal/api/dto/auth.go @@ -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"` +} diff --git a/internal/api/http/handlers/auth_handler.go b/internal/api/http/handlers/auth_handler.go index 48163f0..3dda158 100644 --- a/internal/api/http/handlers/auth_handler.go +++ b/internal/api/http/handlers/auth_handler.go @@ -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", }) } diff --git a/internal/api/http/setup.go b/internal/api/http/setup.go index 5c404cd..58c5d0b 100644 --- a/internal/api/http/setup.go +++ b/internal/api/http/setup.go @@ -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) }