package controllers import ( "api/database" "api/models" "time" "github.com/gofiber/fiber/v2" ) func AddEvent(c *fiber.Ctx) error { var data map[string]string var startdt time.Time var err error user := c.Locals("user").(models.User) if err := c.BodyParser(&data); err != nil { return fiber.ErrBadRequest } if data["name"] == "" || data["description"] == "" { return fiber.ErrBadRequest } if user.Blocked == "S" || user.Cancelled == "S" { 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 user := c.Locals("user").(models.User) if user.UserType != "A" { 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 user := c.Locals("user").(models.User) if user.UserType != "A" { 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) }