117 lines
2.1 KiB
Go
117 lines
2.1 KiB
Go
package controllers
|
|
|
|
import (
|
|
"api/database"
|
|
"api/dbaccess"
|
|
"api/models"
|
|
"api/utils"
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
func AddEvent(c *fiber.Ctx) error {
|
|
var data map[string]string
|
|
var startdt time.Time
|
|
|
|
_, err := utils.ProcessToken(c)
|
|
if err != nil {
|
|
return fiber.ErrUnauthorized
|
|
}
|
|
|
|
if err := c.BodyParser(&data); err != nil {
|
|
return fiber.ErrBadRequest
|
|
}
|
|
|
|
u, err := strconv.Atoi(data["user"])
|
|
if err != nil {
|
|
return fiber.ErrBadRequest
|
|
}
|
|
|
|
if data["name"] == "" || data["description"] == "" {
|
|
return fiber.ErrBadRequest
|
|
}
|
|
|
|
user := dbaccess.GetUserById(u)
|
|
|
|
if user.Id == 0 {
|
|
return fiber.ErrBadRequest
|
|
}
|
|
|
|
if user.Blocked == "Y" || user.Cancelled == "Y" {
|
|
return fiber.ErrForbidden
|
|
}
|
|
|
|
dateformat := "02/01/2006 15:04"
|
|
if data["startDt"] == "" {
|
|
return fiber.ErrBadRequest
|
|
} else {
|
|
startdt, err = time.Parse(dateformat, data["startDt"])
|
|
if err != nil {
|
|
return fiber.ErrBadRequest
|
|
}
|
|
}
|
|
|
|
event := models.Event{
|
|
Name: data["name"],
|
|
Description: data["description"],
|
|
UserId: user.Id,
|
|
ExpectedDate: startdt,
|
|
EventType: data["eventtype"],
|
|
}
|
|
|
|
database.DB.Create(&event)
|
|
|
|
if event.Id == 0 {
|
|
return fiber.ErrNotAcceptable
|
|
}
|
|
|
|
return c.JSON(event)
|
|
}
|
|
|
|
// GetAllEvents - Returns all events
|
|
func GetAllEvents(c *fiber.Ctx) error {
|
|
|
|
var events []models.Event
|
|
|
|
// _, err := utils.ProcessToken(c)
|
|
// if err != nil {
|
|
// return fiber.ErrUnauthorized
|
|
// }
|
|
|
|
database.DB.Find(&events)
|
|
|
|
if len(events) == 0 {
|
|
return fiber.ErrNotFound
|
|
}
|
|
|
|
return c.JSON(events)
|
|
}
|
|
|
|
// GetEventsByUser - Returns all events from a user
|
|
func GetEventsByUser(c *fiber.Ctx) error {
|
|
|
|
var events []models.Event
|
|
var user models.User
|
|
|
|
_, err := utils.ProcessToken(c)
|
|
if err != nil {
|
|
return fiber.ErrUnauthorized
|
|
}
|
|
|
|
database.DB.Where("id = ?", c.Params("id")).First(&user)
|
|
|
|
if user.Id == 0 {
|
|
return fiber.ErrUnauthorized
|
|
}
|
|
|
|
database.DB.Where("user_id = ?", user.Id).Find(&events)
|
|
|
|
if len(events) == 0 {
|
|
return fiber.ErrNotFound
|
|
}
|
|
|
|
return c.JSON(events)
|
|
}
|