1.0.0 - Initial endpoints completed
parent
8ab665c987
commit
c768d18263
|
|
@ -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)
|
||||||
|
}
|
||||||
|
|
@ -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"`
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue