1.0.3 - Updated users and events table structure
parent
6a1f3e00ba
commit
530a696b8c
|
|
@ -15,7 +15,7 @@ import (
|
||||||
|
|
||||||
func Version(c *fiber.Ctx) error {
|
func Version(c *fiber.Ctx) error {
|
||||||
return c.JSON(fiber.Map{
|
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
|
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"])
|
passwd, _ := utils.HashPassword(data["password"])
|
||||||
|
|
||||||
user := models.User{
|
user := models.User{
|
||||||
Name: data["name"],
|
Name: data["name"],
|
||||||
Email: data["email"],
|
Email: data["email"],
|
||||||
Password: passwd,
|
Password: passwd,
|
||||||
|
Channel: data["channel"],
|
||||||
UserType: data["usertype"],
|
UserType: data["usertype"],
|
||||||
Blocked: "N",
|
Blocked: "N",
|
||||||
Cancelled: "N",
|
Cancelled: "N",
|
||||||
|
|
@ -141,9 +149,9 @@ func GetAllUsers(c *fiber.Ctx) error {
|
||||||
database.DB.Find(&users)
|
database.DB.Find(&users)
|
||||||
|
|
||||||
if len(users) == 0 {
|
if len(users) == 0 {
|
||||||
c.Status(fiber.StatusUnauthorized)
|
c.Status(fiber.StatusNotFound)
|
||||||
return c.JSON(fiber.Map{
|
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 {
|
func AddEvent(c *fiber.Ctx) error {
|
||||||
var data map[string]string
|
var data map[string]string
|
||||||
var audience int
|
|
||||||
var startdt time.Time
|
var startdt time.Time
|
||||||
|
|
||||||
_, err := utils.ProcessToken(c)
|
_, 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"
|
dateformat := "02/01/2006 15:04"
|
||||||
if data["startDt"] == "" {
|
if data["startDt"] == "" {
|
||||||
c.Status(fiber.StatusBadRequest)
|
c.Status(fiber.StatusBadRequest)
|
||||||
|
|
@ -77,12 +61,11 @@ func AddEvent(c *fiber.Ctx) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
event := models.Event{
|
event := models.Event{
|
||||||
Name: data["name"],
|
Name: data["name"],
|
||||||
UserId: user.Id,
|
UserId: user.Id,
|
||||||
User: user,
|
User: user,
|
||||||
ExpectedAudience: audience,
|
ExpectedDate: startdt,
|
||||||
ExpectedDate: startdt,
|
EventType: data["eventtype"],
|
||||||
EventType: data["eventtype"],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
database.DB.Create(&event)
|
database.DB.Create(&event)
|
||||||
|
|
|
||||||
|
|
@ -1,53 +1,55 @@
|
||||||
package database
|
package database
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"api/models"
|
"api/models"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/joho/godotenv"
|
"github.com/joho/godotenv"
|
||||||
|
|
||||||
"gorm.io/driver/mysql"
|
"gorm.io/driver/mysql"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/logger"
|
"gorm.io/gorm/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Our database
|
// Our database
|
||||||
var DB *gorm.DB
|
var DB *gorm.DB
|
||||||
|
|
||||||
// NewDatabase - returns a pointer to a new database connection
|
// ConnectDB - returns a pointer to a new database connection
|
||||||
func ConnectDB() error {
|
func ConnectDB() error {
|
||||||
var erre error
|
var erre error
|
||||||
|
|
||||||
log.Println("Getting environment values")
|
log.Println("Getting environment values")
|
||||||
erre = godotenv.Load()
|
erre = godotenv.Load()
|
||||||
if erre != nil {
|
if erre != nil {
|
||||||
log.Printf("Error getting env, not comming through %v\n", erre)
|
log.Printf("Error getting env, not comming through %v\n", erre)
|
||||||
return 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"))
|
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")
|
log.Println("Opening connection to database")
|
||||||
|
|
||||||
db, err := gorm.Open(mysql.Open(DBURL), &gorm.Config{
|
db, err := gorm.Open(mysql.Open(DBURL), &gorm.Config{
|
||||||
Logger: logger.Default.LogMode(logger.Silent),
|
Logger: logger.Default.LogMode(logger.Silent),
|
||||||
})
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if result := db.AutoMigrate(&models.User{}); result != nil {
|
log.Println("Migrating database tables")
|
||||||
return err
|
|
||||||
}
|
if result := db.AutoMigrate(&models.User{}); result != nil {
|
||||||
|
return result
|
||||||
if result := db.AutoMigrate(&models.Event{}); result != nil {
|
}
|
||||||
return result
|
|
||||||
}
|
if result := db.AutoMigrate(&models.Event{}); result != nil {
|
||||||
|
return result
|
||||||
DB = db
|
}
|
||||||
|
|
||||||
return nil
|
DB = db
|
||||||
}
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
package models
|
package models
|
||||||
|
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
type Event struct {
|
type Event struct {
|
||||||
Id uint `gorm:"primary key" json:"id"`
|
Id uint `gorm:"primary key" json:"id"`
|
||||||
Name string `gorm:"size:40;not null" json:"name"`
|
Name string `gorm:"size:40;not null" json:"name"`
|
||||||
Description string `gorm:"not null" json:"description"`
|
Description string `gorm:"not null" json:"description"`
|
||||||
ExpectedAudience int `gorm:"size:40;not null" json:"audience"`
|
ExpectedDate time.Time `gorm:"not null" json:"startDt"`
|
||||||
ExpectedDate time.Time `gorm:"not null" json:"startDt"`
|
UserId uint `gorm:"size:40;not null" json:"user"`
|
||||||
UserId uint `gorm:"size:40;not null" json:"user"`
|
User User
|
||||||
User User
|
EventType string `gorm:"size:1;not null;default:O" json:"eventtype"` // O = Open, C = Closed
|
||||||
EventType string `gorm:"size:1;not null;default:U" json:"eventtype"`
|
}
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
package models
|
package models
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
Id uint `gorm:"primary key" json:"id"`
|
Id uint `gorm:"primary key" json:"id"`
|
||||||
Name string `gorm:"size:40;not null" json:"name"`
|
Name string `gorm:"size:40;not null" json:"name"`
|
||||||
Email string `gorm:"size:40;not null;unique" json:"email"`
|
Email string `gorm:"size:40;not null;unique" json:"email"`
|
||||||
Password []byte `gorm:"size:100;not null;" json:"-"`
|
Password []byte `gorm:"size:100;not null;" json:"-"`
|
||||||
UserType string `gorm:"size:1;not null;default:U" json:"usertype"`
|
Channel string `gorm:"size:40;not null" json:"channel"`
|
||||||
Blocked string `gorm:"size:1;not null;default:N" json:"blocked"`
|
UserType string `gorm:"size:1;not null;default:U" json:"usertype"`
|
||||||
Cancelled string `gorm:"size:1;not null;default:N" json:"cancelled"`
|
Blocked string `gorm:"size:1;not null;default:N" json:"blocked"`
|
||||||
CreatedBy string `gorm:"size:15;not null;default:Manual" json:"createdby"`
|
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
|
package routes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"api/controllers"
|
"api/controllers"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
|
|
||||||
jwtware "github.com/gofiber/jwt/v3"
|
jwtware "github.com/gofiber/jwt/v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Setup(app *fiber.App) {
|
func Setup(app *fiber.App) {
|
||||||
|
|
||||||
app.Get("/version", controllers.Version)
|
app.Get("/version", controllers.Version)
|
||||||
|
|
||||||
app.Post("/login", controllers.Login)
|
app.Post("/login", controllers.Login)
|
||||||
|
app.Post("/register", controllers.AddUser)
|
||||||
protected := app.Group("/")
|
|
||||||
protected.Use(jwtware.New(jwtware.Config{
|
protected := app.Group("/")
|
||||||
SigningKey: []byte(os.Getenv("API_SECRET")),
|
protected.Use(jwtware.New(jwtware.Config{
|
||||||
}))
|
SigningKey: []byte(os.Getenv("API_SECRET")),
|
||||||
|
}))
|
||||||
protected.Get("user", controllers.GetOwnUser)
|
|
||||||
protected.Get("users", controllers.GetAllUsers)
|
protected.Get("user", controllers.GetOwnUser)
|
||||||
protected.Post("user", controllers.AddUser)
|
protected.Get("users", controllers.GetAllUsers)
|
||||||
|
protected.Post("user", controllers.AddUser)
|
||||||
protected.Post("event", controllers.AddEvent)
|
|
||||||
}
|
protected.Post("event", controllers.AddEvent)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue