1.0.0 - Initial endpoints completed

pull/2/head
Nilo Roberto C Paim 2021-10-11 16:09:34 -03:00
parent 8ab665c987
commit c768d18263
3 changed files with 99 additions and 0 deletions

BIN
api Normal file

Binary file not shown.

View File

@ -0,0 +1,90 @@
package controllers
import (
"api/database"
"api/dbaccess"
"api/models"
"strconv"
"time"
"github.com/gofiber/fiber/v2"
)
func AddEvent(c *fiber.Ctx) error {
var data map[string]string
var audience int
var startdt time.Time
if err := c.BodyParser(&data); err != nil {
return err
}
u, err := strconv.Atoi(data["user"])
if err != nil {
c.Status(fiber.StatusBadRequest)
return c.JSON(fiber.Map{
"message": "Invalid value for Event Owner",
})
}
user := dbaccess.GetUserById(u)
if user.Id == 0 {
c.Status(fiber.StatusBadRequest)
return c.JSON(fiber.Map{
"message": "Event Owner not found",
})
}
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)
return c.JSON(fiber.Map{
"message": "Start date not defined",
})
} else {
startdt, err = time.Parse(dateformat, data["startDt"])
if err != nil {
c.Status(fiber.StatusBadRequest)
return c.JSON(fiber.Map{
"message": "Invalid value for start date",
})
}
}
event := models.Event{
Name: data["name"],
UserId: user.Id,
User: user,
ExpectedAudience: audience,
ExpectedDate: startdt,
EventType: data["eventtype"],
}
database.DB.Create(&event)
if event.Id == 0 {
c.Status(fiber.StatusBadRequest)
return c.JSON(fiber.Map{
"message": "Cannot create event",
})
}
c.SendStatus(fiber.StatusCreated)
return c.JSON(event)
}

9
models/events.go Normal file
View File

@ -0,0 +1,9 @@
package models
type Event 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:"-"`
EventType string `gorm:"size:1;not null;default:U" json:"eventtype"`
}