Добавил RegisterUser в котроллере и роуты в апи
This commit is contained in:
parent
44e65efd42
commit
411232dee4
|
@ -32,25 +32,82 @@ type TokenStruct struct {
|
||||||
token string
|
token string
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterUser(c *gin.Context, user database.User) {
|
//func RegisterUser(c *gin.Context, user database.User) {
|
||||||
|
// db := database.Connector()
|
||||||
|
// validate := validators.Validate
|
||||||
|
// response := message.Response{Status: 200}
|
||||||
|
// if err := validate.Struct(user); err != nil {
|
||||||
|
// response.Error = libs.GetValidationErrors(err.(validator.ValidationErrors))
|
||||||
|
// response.Status = 400
|
||||||
|
// message.SendResponse(c, response)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// hash, err := bcrypt.GenerateFromPassword([]byte(user.Password), 12)
|
||||||
|
// if err != nil {
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// user.Password = string(hash)
|
||||||
|
// if err := db.Create(user).Error; err != nil {
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// return
|
||||||
|
//}
|
||||||
|
|
||||||
|
func RegisterUser(c *gin.Context, register database.User) {
|
||||||
|
var user database.User
|
||||||
db := database.Connector()
|
db := database.Connector()
|
||||||
validate := validators.Validate
|
validate := validators.Validate
|
||||||
response := message.Response{Status: 200}
|
response := message.Response{Status: 201}
|
||||||
if err := validate.Struct(user); err != nil {
|
var token *database.Token
|
||||||
|
|
||||||
|
if err := validate.Struct(register); err != nil {
|
||||||
response.Error = libs.GetValidationErrors(err.(validator.ValidationErrors))
|
response.Error = libs.GetValidationErrors(err.(validator.ValidationErrors))
|
||||||
response.Status = 400
|
response.Status = 400
|
||||||
message.SendResponse(c, response)
|
message.SendResponse(c, response)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
hash, err := bcrypt.GenerateFromPassword([]byte(user.Password), 12)
|
|
||||||
|
if err := db.Where("email =?", register.Email).First(&user).Error; err == nil {
|
||||||
|
response.Status = 400
|
||||||
|
response.Error = gin.H{
|
||||||
|
"error": "User already exists",
|
||||||
|
}
|
||||||
|
message.SendResponse(c, response)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
hashedPassword, err := bcrypt.GenerateFromPassword([]byte(register.Password), 12)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
response.Status = 500
|
||||||
|
response.Error = gin.H{
|
||||||
|
"error": "Internal Server Error",
|
||||||
|
}
|
||||||
|
message.SendResponse(c, response)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
user.Password = string(hash)
|
|
||||||
if err := db.Create(user).Error; err != nil {
|
user.Email = register.Email
|
||||||
|
user.Password = string(hashedPassword)
|
||||||
|
user.Name = register.Name
|
||||||
|
|
||||||
|
if err := db.Create(&user).Error; err != nil {
|
||||||
|
response.Status = 500
|
||||||
|
response.Error = gin.H{
|
||||||
|
"error": "Internal Server Error",
|
||||||
|
}
|
||||||
|
message.SendResponse(c, response)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
return
|
|
||||||
|
token.Token = generateToken()
|
||||||
|
token.UserID = user.ID
|
||||||
|
user.Tokens = append(user.Tokens, token)
|
||||||
|
|
||||||
|
response.Message = gin.H{
|
||||||
|
"message": "Registration Success",
|
||||||
|
}
|
||||||
|
|
||||||
|
message.SendResponse(c, response)
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoginUser(c *gin.Context, login types.LoginRequest) {
|
func LoginUser(c *gin.Context, login types.LoginRequest) {
|
||||||
|
|
38
main.go
38
main.go
|
@ -70,15 +70,45 @@ func main() {
|
||||||
controllers.EditManufacture(c, manufacturer)
|
controllers.EditManufacture(c, manufacturer)
|
||||||
})
|
})
|
||||||
|
|
||||||
//Для создания пользователя
|
//View для создания пользователя
|
||||||
r.POST("/registration", func(c *gin.Context) {
|
r.POST("/registration", func(c *gin.Context) {
|
||||||
var manufacturer database.Manufacturer
|
var form database.User
|
||||||
if err := c.ShouldBind(&manufacturer); err != nil {
|
if err := c.ShouldBind(&form); err != nil {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||||
}
|
}
|
||||||
|
|
||||||
controllers.CreateManufacturer(c, manufacturer)
|
controllers.RegisterUser(c, form)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//View для аутентификации пользователя
|
||||||
|
r.POST("/login", func(c *gin.Context) {
|
||||||
|
var register types.LoginRequest
|
||||||
|
if err := c.ShouldBind(®ister); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||||
|
}
|
||||||
|
controllers.LoginUser(c, register)
|
||||||
|
})
|
||||||
|
//View для получения пользователя
|
||||||
|
r.GET("/user", func(c *gin.Context) {})
|
||||||
|
|
||||||
|
//View для редактированя пользователя
|
||||||
|
r.PATCH("/user/edit", 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.EditUser(c, user)
|
||||||
|
})
|
||||||
|
|
||||||
|
//View для удаления пользователя
|
||||||
|
r.DELETE("/user/delete", func(c *gin.Context) {
|
||||||
|
var form types.LoginRequest
|
||||||
|
if err := c.ShouldBind(&form); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||||
|
}
|
||||||
|
controllers.DeleteUser(c)
|
||||||
|
})
|
||||||
|
|
||||||
err := r.Run()
|
err := r.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue