diff --git a/controllers/userController.go b/controllers/userController.go index 125d845..dc750bc 100644 --- a/controllers/userController.go +++ b/controllers/userController.go @@ -171,6 +171,34 @@ func GetUserByToken(token string) (database.User, error) { return user, err } +func GetUser(c *gin.Context, user database.User) { + token := strings.Split(c.Request.Header["Bearer"][0], " ")[1] + validate := validators.Validate + response := message.Response{Status: 200} + u, err := GetUserByToken(token) + if err != nil { + response.Status = 401 + response.Error = gin.H{ + "error": "Token is invalid, please login", + } + message.SendResponse(c, response) + return + } + + if err := validate.Struct(user); err != nil { + response.Error = libs.GetValidationErrors(err.(validator.ValidationErrors)) + response.Status = 400 + message.SendResponse(c, response) + return + } + + response.Message = gin.H{ + "message": "User data successfully received", + "user": u, + } + message.SendResponse(c, response) +} + func EditUser(c *gin.Context, user database.User) { token := strings.Split(c.Request.Header["Bearer"][0], " ")[1] diff --git a/main.go b/main.go index 61e7313..c4a483e 100644 --- a/main.go +++ b/main.go @@ -89,7 +89,13 @@ func main() { controllers.LoginUser(c, register) }) //View для получения пользователя - r.GET("/user", func(c *gin.Context) {}) + r.GET("/user", func(c *gin.Context) { + var user database.User + if err := c.ShouldBind(&user); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + } + controllers.LoginUser(c, user) + }) //View для редактированя пользователя r.PATCH("/user/edit", func(c *gin.Context) {