diff --git a/app/module/users/controller/users.controller.go b/app/module/users/controller/users.controller.go index a91b1bf..68ad14b 100644 --- a/app/module/users/controller/users.controller.go +++ b/app/module/users/controller/users.controller.go @@ -18,6 +18,7 @@ type usersController struct { type UsersController interface { All(c *fiber.Ctx) error Show(c *fiber.Ctx) error + ShowInfo(c *fiber.Ctx) error Save(c *fiber.Ctx) error Update(c *fiber.Ctx) error Login(c *fiber.Ctx) error @@ -84,7 +85,7 @@ func (_i *usersController) All(c *fiber.Ctx) error { // @Failure 400 {object} response.BadRequestError // @Failure 401 {object} response.UnauthorizedError // @Failure 500 {object} response.InternalServerError -// @Router /users/{id} [get] +// @Router /users/detail/{id} [get] func (_i *usersController) Show(c *fiber.Ctx) error { id, err := strconv.ParseUint(c.Params("id"), 10, 0) if err != nil { @@ -103,6 +104,31 @@ func (_i *usersController) Show(c *fiber.Ctx) error { }) } +// ShowInfo Users +// @Summary ShowInfo Users +// @Description API for ShowUserInfo +// @Tags Users +// @Security Bearer +// @Param Authorization header string true "Insert your access token" default(Bearer ) +// @Success 200 {object} response.Response +// @Failure 400 {object} response.BadRequestError +// @Failure 401 {object} response.UnauthorizedError +// @Failure 500 {object} response.InternalServerError +// @Router /users/info [get] +func (_i *usersController) ShowInfo(c *fiber.Ctx) error { + authToken := c.Get("Authorization") + dataResult, err := _i.usersService.ShowUserInfo(authToken) + if err != nil { + return err + } + + return utilRes.Resp(c, utilRes.Response{ + Success: true, + Messages: utilRes.Messages{"Users successfully retrieve"}, + Data: dataResult, + }) +} + // Save Users // @Summary Create Users // @Description API for create Users diff --git a/app/module/users/service/users.service.go b/app/module/users/service/users.service.go index 1355301..9617115 100644 --- a/app/module/users/service/users.service.go +++ b/app/module/users/service/users.service.go @@ -23,6 +23,7 @@ type usersService struct { type UsersService interface { All(req request.UsersQueryRequest) (users []*response.UsersResponse, paging paginator.Pagination, err error) Show(id uint) (users *response.UsersResponse, err error) + ShowUserInfo(authToken string) (users *response.UsersResponse, err error) Save(req request.UsersCreateRequest, authToken string) (err error) Login(req request.UserLogin) (res *gocloak.JWT, err error) Update(id uint, req request.UsersUpdateRequest) (err error) @@ -62,6 +63,12 @@ func (_i *usersService) Show(id uint) (users *response.UsersResponse, err error) return mapper.UsersResponseMapper(result), nil } +func (_i *usersService) ShowUserInfo(authToken string) (users *response.UsersResponse, err error) { + userInfo := utilSvc.GetUserInfo(_i.Log, _i.Repo, authToken) + + return mapper.UsersResponseMapper(userInfo), nil +} + func (_i *usersService) Save(req request.UsersCreateRequest, authToken string) (err error) { _i.Log.Info().Interface("data", req).Msg("") newReq := req.ToEntity() diff --git a/app/module/users/users.module.go b/app/module/users/users.module.go index d0cb570..abf60ae 100644 --- a/app/module/users/users.module.go +++ b/app/module/users/users.module.go @@ -45,7 +45,8 @@ func (_i *UsersRouter) RegisterUsersRoutes() { // define routes _i.App.Route("/users", func(router fiber.Router) { router.Get("/", usersController.All) - router.Get("/:id", usersController.Show) + router.Get("/detail/:id", usersController.Show) + router.Get("/info", usersController.ShowInfo) router.Post("/", usersController.Save) router.Put("/:id", usersController.Update) router.Post("/login", usersController.Login) diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index cd0ce5b..a0015cc 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -7887,6 +7887,105 @@ const docTemplate = `{ } } }, + "/users/detail/{id}": { + "get": { + "security": [ + { + "Bearer": [] + } + ], + "description": "API for getting one Users", + "tags": [ + "Users" + ], + "summary": "Get one Users", + "parameters": [ + { + "type": "integer", + "description": "Users ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.Response" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/response.BadRequestError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/response.UnauthorizedError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/response.InternalServerError" + } + } + } + } + }, + "/users/info": { + "get": { + "security": [ + { + "Bearer": [] + } + ], + "description": "API for ShowUserInfo", + "tags": [ + "Users" + ], + "summary": "ShowInfo Users", + "parameters": [ + { + "type": "string", + "default": "Bearer \u003cAdd access token here\u003e", + "description": "Insert your access token", + "name": "Authorization", + "in": "header", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.Response" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/response.BadRequestError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/response.UnauthorizedError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/response.InternalServerError" + } + } + } + } + }, "/users/login": { "post": { "security": [ @@ -7939,53 +8038,6 @@ const docTemplate = `{ } }, "/users/{id}": { - "get": { - "security": [ - { - "Bearer": [] - } - ], - "description": "API for getting one Users", - "tags": [ - "Users" - ], - "summary": "Get one Users", - "parameters": [ - { - "type": "integer", - "description": "Users ID", - "name": "id", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/response.Response" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/response.BadRequestError" - } - }, - "401": { - "description": "Unauthorized", - "schema": { - "$ref": "#/definitions/response.UnauthorizedError" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/response.InternalServerError" - } - } - } - }, "put": { "security": [ { diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index c0099b4..bd9dea5 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -7876,6 +7876,105 @@ } } }, + "/users/detail/{id}": { + "get": { + "security": [ + { + "Bearer": [] + } + ], + "description": "API for getting one Users", + "tags": [ + "Users" + ], + "summary": "Get one Users", + "parameters": [ + { + "type": "integer", + "description": "Users ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.Response" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/response.BadRequestError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/response.UnauthorizedError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/response.InternalServerError" + } + } + } + } + }, + "/users/info": { + "get": { + "security": [ + { + "Bearer": [] + } + ], + "description": "API for ShowUserInfo", + "tags": [ + "Users" + ], + "summary": "ShowInfo Users", + "parameters": [ + { + "type": "string", + "default": "Bearer \u003cAdd access token here\u003e", + "description": "Insert your access token", + "name": "Authorization", + "in": "header", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.Response" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/response.BadRequestError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/response.UnauthorizedError" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/response.InternalServerError" + } + } + } + } + }, "/users/login": { "post": { "security": [ @@ -7928,53 +8027,6 @@ } }, "/users/{id}": { - "get": { - "security": [ - { - "Bearer": [] - } - ], - "description": "API for getting one Users", - "tags": [ - "Users" - ], - "summary": "Get one Users", - "parameters": [ - { - "type": "integer", - "description": "Users ID", - "name": "id", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/response.Response" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/response.BadRequestError" - } - }, - "401": { - "description": "Unauthorized", - "schema": { - "$ref": "#/definitions/response.UnauthorizedError" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/response.InternalServerError" - } - } - } - }, "put": { "security": [ { diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index 5d66b0b..de5a55a 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -5826,36 +5826,6 @@ paths: summary: delete Users tags: - Users - get: - description: API for getting one Users - parameters: - - description: Users ID - in: path - name: id - required: true - type: integer - responses: - "200": - description: OK - schema: - $ref: '#/definitions/response.Response' - "400": - description: Bad Request - schema: - $ref: '#/definitions/response.BadRequestError' - "401": - description: Unauthorized - schema: - $ref: '#/definitions/response.UnauthorizedError' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/response.InternalServerError' - security: - - Bearer: [] - summary: Get one Users - tags: - - Users put: description: API for update Users parameters: @@ -5892,6 +5862,69 @@ paths: summary: update Users tags: - Users + /users/detail/{id}: + get: + description: API for getting one Users + parameters: + - description: Users ID + in: path + name: id + required: true + type: integer + responses: + "200": + description: OK + schema: + $ref: '#/definitions/response.Response' + "400": + description: Bad Request + schema: + $ref: '#/definitions/response.BadRequestError' + "401": + description: Unauthorized + schema: + $ref: '#/definitions/response.UnauthorizedError' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/response.InternalServerError' + security: + - Bearer: [] + summary: Get one Users + tags: + - Users + /users/info: + get: + description: API for ShowUserInfo + parameters: + - default: Bearer + description: Insert your access token + in: header + name: Authorization + required: true + type: string + responses: + "200": + description: OK + schema: + $ref: '#/definitions/response.Response' + "400": + description: Bad Request + schema: + $ref: '#/definitions/response.BadRequestError' + "401": + description: Unauthorized + schema: + $ref: '#/definitions/response.UnauthorizedError' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/response.InternalServerError' + security: + - Bearer: [] + summary: ShowInfo Users + tags: + - Users /users/login: post: description: API for Login Users