package keycloak import ( "net/http" baseResponse "antrian-operasi/internal/shared" "github.com/gin-gonic/gin" ) type KeycloakHandler struct { service IKeycloakService } func NewKeycloakHandler(service IKeycloakService) KeycloakHandler { return KeycloakHandler{service} } // GetTokenByRefreshCode godoc // @Summary Requesting new token to keycloak using refresh token // @Tags Keycloak // @Param refresh_token query string 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) if err != nil { errorResponse := baseResponse.BaseErrorResponse{ Success: false, Code: 400, Message: err.Error(), } c.JSON(http.StatusInternalServerError, errorResponse) return } response := baseResponse.ToBaseResponse( resp, true, 200, "success refreshing token") c.JSON(http.StatusOK, response) }