From 6b31e05338e2dfdb8b948471e1a45dcf33244eeb Mon Sep 17 00:00:00 2001 From: Nilo Roberto C Paim Date: Tue, 5 Sep 2023 17:36:34 -0300 Subject: [PATCH] fix: verify uniqueness of channel --- controllers/authController.go | 24 +++++++++++++++++++----- database/database.go | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/controllers/authController.go b/controllers/authController.go index c41d264..0cfc7fd 100644 --- a/controllers/authController.go +++ b/controllers/authController.go @@ -7,6 +7,7 @@ import ( "log" "os" "strconv" + "strings" "time" "github.com/dgrijalva/jwt-go" @@ -91,21 +92,33 @@ func AddUser(c *fiber.Ctx) error { var data map[string]string if err := c.BodyParser(&data); err != nil { - return fiber.ErrBadRequest + return c.JSON(fiber.Map{ + "message": "Dados inválidos"}) + } if data["name"] == "" || data["email"] == "" || data["password"] == "" || data["channel"] == "" || data["usertype"] == "" || data["companyname"] == "" { - return fiber.ErrBadRequest + return c.JSON(fiber.Map{ + "message": "Dados inválidos"}) } passwd, _ := utils.HashPassword(data["password"]) - user := models.User{ + var user models.User + + database.DB.Find(&user, "channel = ?", strings.ToLower(data["channel"])) + + if user.Id == 0 { + return c.JSON(fiber.Map{ + "message": "Canal já em uso"}) + } + + user = models.User{ Name: data["name"], Email: data["email"], CompanyName: data["companyname"], Password: passwd, - Channel: data["channel"], + Channel: strings.ToLower(data["channel"]), UserType: data["usertype"], Blocked: "N", Cancelled: "N", @@ -115,7 +128,8 @@ func AddUser(c *fiber.Ctx) error { database.DB.Create(&user) if user.Id == 0 { - return fiber.ErrNotAcceptable + return c.JSON(fiber.Map{ + "message": "Erro ao criar usuário"}) } return c.JSON(user) diff --git a/database/database.go b/database/database.go index b9942c4..59836fa 100644 --- a/database/database.go +++ b/database/database.go @@ -86,7 +86,7 @@ func ConnectDB() error { Email: "pcast@pcast.com.br", CompanyName: "PCast", Password: passwd, - Channel: "PCast", + Channel: "pcast", UserType: "A", Blocked: "N", Cancelled: "N",