diff --git a/controllers/authController.go b/controllers/authController.go index 3cdbcf0..aa70ac1 100644 --- a/controllers/authController.go +++ b/controllers/authController.go @@ -15,7 +15,7 @@ import ( func Version(c *fiber.Ctx) error { return c.JSON(fiber.Map{ - "version": "1.0.2", + "version": "1.0.3", }) } @@ -78,12 +78,20 @@ func AddUser(c *fiber.Ctx) error { return err } + if data["name"] == "" || data["email"] == "" || data["password"] == "" || data["channel"] == "" { + c.SendStatus(fiber.StatusBadRequest) + return c.JSON(fiber.Map{ + "message": "Nome, E-Mail, Senha e Nome do Canal devem ser informados", + }) + } + passwd, _ := utils.HashPassword(data["password"]) user := models.User{ Name: data["name"], Email: data["email"], Password: passwd, + Channel: data["channel"], UserType: data["usertype"], Blocked: "N", Cancelled: "N", @@ -141,9 +149,9 @@ func GetAllUsers(c *fiber.Ctx) error { database.DB.Find(&users) if len(users) == 0 { - c.Status(fiber.StatusUnauthorized) + c.Status(fiber.StatusNotFound) return c.JSON(fiber.Map{ - "message": "Sem autorização", + "message": "Nenhum usuário encontrado", }) } diff --git a/controllers/eventController.go b/controllers/eventController.go index cf3e512..4886a5a 100644 --- a/controllers/eventController.go +++ b/controllers/eventController.go @@ -13,7 +13,6 @@ import ( func AddEvent(c *fiber.Ctx) error { var data map[string]string - var audience int var startdt time.Time _, err := utils.ProcessToken(c) @@ -45,21 +44,6 @@ func AddEvent(c *fiber.Ctx) error { }) } - if data["audience"] == "" { - c.Status(fiber.StatusBadRequest) - return c.JSON(fiber.Map{ - "message": "Audience not defined", - }) - } else { - audience, err = strconv.Atoi(data["audience"]) - if err != nil { - c.Status(fiber.StatusBadRequest) - return c.JSON(fiber.Map{ - "message": "Invalid value for audience", - }) - } - } - dateformat := "02/01/2006 15:04" if data["startDt"] == "" { c.Status(fiber.StatusBadRequest) @@ -77,12 +61,11 @@ func AddEvent(c *fiber.Ctx) error { } event := models.Event{ - Name: data["name"], - UserId: user.Id, - User: user, - ExpectedAudience: audience, - ExpectedDate: startdt, - EventType: data["eventtype"], + Name: data["name"], + UserId: user.Id, + User: user, + ExpectedDate: startdt, + EventType: data["eventtype"], } database.DB.Create(&event) diff --git a/database/database.go b/database/database.go index 73afd50..7e11a5e 100644 --- a/database/database.go +++ b/database/database.go @@ -1,53 +1,55 @@ -package database - -import ( - "api/models" - "fmt" - "log" - "os" - - "github.com/joho/godotenv" - - "gorm.io/driver/mysql" - "gorm.io/gorm" - "gorm.io/gorm/logger" -) - -// Our database -var DB *gorm.DB - -// NewDatabase - returns a pointer to a new database connection -func ConnectDB() error { - var erre error - - log.Println("Getting environment values") - erre = godotenv.Load() - if erre != nil { - log.Printf("Error getting env, not comming through %v\n", erre) - return erre - } - - DBURL := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local", os.Getenv("DB_USER"), os.Getenv("DB_PASSWORD"), os.Getenv("DB_HOST"), os.Getenv("DB_PORT"), os.Getenv("DB_NAME")) - - log.Println("Opening connection to database") - - db, err := gorm.Open(mysql.Open(DBURL), &gorm.Config{ - Logger: logger.Default.LogMode(logger.Silent), - }) - - if err != nil { - return err - } - - if result := db.AutoMigrate(&models.User{}); result != nil { - return err - } - - if result := db.AutoMigrate(&models.Event{}); result != nil { - return result - } - - DB = db - - return nil -} +package database + +import ( + "api/models" + "fmt" + "log" + "os" + + "github.com/joho/godotenv" + + "gorm.io/driver/mysql" + "gorm.io/gorm" + "gorm.io/gorm/logger" +) + +// Our database +var DB *gorm.DB + +// ConnectDB - returns a pointer to a new database connection +func ConnectDB() error { + var erre error + + log.Println("Getting environment values") + erre = godotenv.Load() + if erre != nil { + log.Printf("Error getting env, not comming through %v\n", erre) + return erre + } + + DBURL := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local", os.Getenv("DB_USER"), os.Getenv("DB_PASSWORD"), os.Getenv("DB_HOST"), os.Getenv("DB_PORT"), os.Getenv("DB_NAME")) + + log.Println("Opening connection to database") + + db, err := gorm.Open(mysql.Open(DBURL), &gorm.Config{ + Logger: logger.Default.LogMode(logger.Silent), + }) + + if err != nil { + return err + } + + log.Println("Migrating database tables") + + if result := db.AutoMigrate(&models.User{}); result != nil { + return result + } + + if result := db.AutoMigrate(&models.Event{}); result != nil { + return result + } + + DB = db + + return nil +} diff --git a/models/events.go b/models/events.go index 81c2253..c8bf88c 100644 --- a/models/events.go +++ b/models/events.go @@ -1,14 +1,13 @@ -package models - -import "time" - -type Event struct { - Id uint `gorm:"primary key" json:"id"` - Name string `gorm:"size:40;not null" json:"name"` - Description string `gorm:"not null" json:"description"` - ExpectedAudience int `gorm:"size:40;not null" json:"audience"` - ExpectedDate time.Time `gorm:"not null" json:"startDt"` - UserId uint `gorm:"size:40;not null" json:"user"` - User User - EventType string `gorm:"size:1;not null;default:U" json:"eventtype"` -} +package models + +import "time" + +type Event struct { + Id uint `gorm:"primary key" json:"id"` + Name string `gorm:"size:40;not null" json:"name"` + Description string `gorm:"not null" json:"description"` + ExpectedDate time.Time `gorm:"not null" json:"startDt"` + UserId uint `gorm:"size:40;not null" json:"user"` + User User + EventType string `gorm:"size:1;not null;default:O" json:"eventtype"` // O = Open, C = Closed +} diff --git a/models/users.go b/models/users.go index f476567..d5d4eee 100644 --- a/models/users.go +++ b/models/users.go @@ -1,12 +1,13 @@ -package models - -type User struct { - Id uint `gorm:"primary key" json:"id"` - Name string `gorm:"size:40;not null" json:"name"` - Email string `gorm:"size:40;not null;unique" json:"email"` - Password []byte `gorm:"size:100;not null;" json:"-"` - UserType string `gorm:"size:1;not null;default:U" json:"usertype"` - Blocked string `gorm:"size:1;not null;default:N" json:"blocked"` - Cancelled string `gorm:"size:1;not null;default:N" json:"cancelled"` - CreatedBy string `gorm:"size:15;not null;default:Manual" json:"createdby"` -} +package models + +type User struct { + Id uint `gorm:"primary key" json:"id"` + Name string `gorm:"size:40;not null" json:"name"` + Email string `gorm:"size:40;not null;unique" json:"email"` + Password []byte `gorm:"size:100;not null;" json:"-"` + Channel string `gorm:"size:40;not null" json:"channel"` + UserType string `gorm:"size:1;not null;default:U" json:"usertype"` + Blocked string `gorm:"size:1;not null;default:N" json:"blocked"` + Cancelled string `gorm:"size:1;not null;default:N" json:"cancelled"` + CreatedBy string `gorm:"size:15;not null;default:Manual" json:"createdby"` +} diff --git a/routes/routes.go b/routes/routes.go index ea407cd..a958c94 100644 --- a/routes/routes.go +++ b/routes/routes.go @@ -1,28 +1,29 @@ -package routes - -import ( - "api/controllers" - "os" - - "github.com/gofiber/fiber/v2" - - jwtware "github.com/gofiber/jwt/v3" -) - -func Setup(app *fiber.App) { - - app.Get("/version", controllers.Version) - - app.Post("/login", controllers.Login) - - protected := app.Group("/") - protected.Use(jwtware.New(jwtware.Config{ - SigningKey: []byte(os.Getenv("API_SECRET")), - })) - - protected.Get("user", controllers.GetOwnUser) - protected.Get("users", controllers.GetAllUsers) - protected.Post("user", controllers.AddUser) - - protected.Post("event", controllers.AddEvent) -} +package routes + +import ( + "api/controllers" + "os" + + "github.com/gofiber/fiber/v2" + + jwtware "github.com/gofiber/jwt/v3" +) + +func Setup(app *fiber.App) { + + app.Get("/version", controllers.Version) + + app.Post("/login", controllers.Login) + app.Post("/register", controllers.AddUser) + + protected := app.Group("/") + protected.Use(jwtware.New(jwtware.Config{ + SigningKey: []byte(os.Getenv("API_SECRET")), + })) + + protected.Get("user", controllers.GetOwnUser) + protected.Get("users", controllers.GetAllUsers) + protected.Post("user", controllers.AddUser) + + protected.Post("event", controllers.AddEvent) +}