From c64f46ce827531f01145861a1d810eecdd774709 Mon Sep 17 00:00:00 2001 From: renaldybrada Date: Fri, 20 Feb 2026 09:14:46 +0700 Subject: [PATCH] change query param refresh token to body request --- docs/docs.go | 21 +++++++++++++++++---- docs/swagger.json | 21 +++++++++++++++++---- docs/swagger.yaml | 14 +++++++++++--- internal/domain/keycloak/handler.go | 16 +++++++++++++--- internal/domain/keycloak/request.go | 5 +++++ 5 files changed, 63 insertions(+), 14 deletions(-) create mode 100644 internal/domain/keycloak/request.go diff --git a/docs/docs.go b/docs/docs.go index 790a663..000db3a 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -512,11 +512,13 @@ const docTemplate = `{ "summary": "Requesting new token to keycloak using refresh token", "parameters": [ { - "type": "string", "description": "Valid Refresh Token", - "name": "refresh_token", - "in": "query", - "required": true + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/keycloak.RefreshTokenRequest" + } } ], "responses": { @@ -1276,6 +1278,17 @@ const docTemplate = `{ } } }, + "keycloak.RefreshTokenRequest": { + "type": "object", + "required": [ + "refresh_token" + ], + "properties": { + "refresh_token": { + "type": "string" + } + } + }, "pasien.PasienResponse": { "type": "object", "properties": { diff --git a/docs/swagger.json b/docs/swagger.json index d1cc71b..3b43b91 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -506,11 +506,13 @@ "summary": "Requesting new token to keycloak using refresh token", "parameters": [ { - "type": "string", "description": "Valid Refresh Token", - "name": "refresh_token", - "in": "query", - "required": true + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/keycloak.RefreshTokenRequest" + } } ], "responses": { @@ -1270,6 +1272,17 @@ } } }, + "keycloak.RefreshTokenRequest": { + "type": "object", + "required": [ + "refresh_token" + ], + "properties": { + "refresh_token": { + "type": "string" + } + } + }, "pasien.PasienResponse": { "type": "object", "properties": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index a864c0f..8feccd3 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -325,6 +325,13 @@ definitions: - published type: string type: object + keycloak.RefreshTokenRequest: + properties: + refresh_token: + type: string + required: + - refresh_token + type: object pasien.PasienResponse: properties: alamat: @@ -749,10 +756,11 @@ paths: post: parameters: - description: Valid Refresh Token - in: query - name: refresh_token + in: body + name: body required: true - type: string + schema: + $ref: '#/definitions/keycloak.RefreshTokenRequest' responses: "200": description: OK diff --git a/internal/domain/keycloak/handler.go b/internal/domain/keycloak/handler.go index bc431f8..025dfc6 100644 --- a/internal/domain/keycloak/handler.go +++ b/internal/domain/keycloak/handler.go @@ -3,6 +3,7 @@ package keycloak import ( "net/http" + "antrian-operasi/internal/shared" baseResponse "antrian-operasi/internal/shared" "github.com/gin-gonic/gin" @@ -19,13 +20,22 @@ func NewKeycloakHandler(service IKeycloakService) KeycloakHandler { // GetTokenByRefreshCode godoc // @Summary Requesting new token to keycloak using refresh token // @Tags Keycloak -// @Param refresh_token query string true "Valid Refresh Token" +// @Param body body RefreshTokenRequest true "Valid Refresh Token" // @Success 200 {object} shared.BaseResponse // @Failure 500 {object} shared.BaseErrorResponse // @Router /keycloak/refresh-token [post] func (h KeycloakHandler) GetTokenByRefreshCode(c *gin.Context) { - refreshToken := c.Query("refresh_token") - resp, err := h.service.FetchTokenUsingRefreshToken(c, refreshToken) + var req RefreshTokenRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(400, shared.BaseErrorResponse{ + Success: false, + Code: 400, + Message: "error bind json", + Errors: shared.ValidationError(err), + }) + return + } + resp, err := h.service.FetchTokenUsingRefreshToken(c, req.RefreshToken) if err != nil { errorResponse := baseResponse.BaseErrorResponse{ diff --git a/internal/domain/keycloak/request.go b/internal/domain/keycloak/request.go new file mode 100644 index 0000000..5760eac --- /dev/null +++ b/internal/domain/keycloak/request.go @@ -0,0 +1,5 @@ +package keycloak + +type RefreshTokenRequest struct { + RefreshToken string `json:"refresh_token" binding:"required"` +}