Добавил RegisterUser в котроллере и роуты в апи
This commit is contained in:
parent
44e65efd42
commit
411232dee4
|
@ -32,25 +32,82 @@ type TokenStruct struct {
|
|||
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()
|
||||
validate := validators.Validate
|
||||
response := message.Response{Status: 200}
|
||||
if err := validate.Struct(user); err != nil {
|
||||
response := message.Response{Status: 201}
|
||||
var token *database.Token
|
||||
|
||||
if err := validate.Struct(register); 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 := 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 {
|
||||
response.Status = 500
|
||||
response.Error = gin.H{
|
||||
"error": "Internal Server Error",
|
||||
}
|
||||
message.SendResponse(c, response)
|
||||
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
|
||||
|
||||
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) {
|
||||
|
|
38
main.go
38
main.go
|
@ -70,15 +70,45 @@ func main() {
|
|||
controllers.EditManufacture(c, manufacturer)
|
||||
})
|
||||
|
||||
//Для создания пользователя
|
||||
//View для создания пользователя
|
||||
r.POST("/registration", func(c *gin.Context) {
|
||||
var manufacturer database.Manufacturer
|
||||
if err := c.ShouldBind(&manufacturer); err != nil {
|
||||
var form database.User
|
||||
if err := c.ShouldBind(&form); err != nil {
|
||||
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()
|
||||
if err != nil {
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue