1.0.3 - Updated users and events table structure
parent
6a1f3e00ba
commit
530a696b8c
|
|
@ -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",
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue