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 { c.Status(fiber.StatusBadRequest) return c.JSON(fiber.Map{ "message": "Sem autorização", }) } 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": "Requisição inválida (usuário não informado)", }) } user := dbaccess.GetUserById(u) if user.Id == 0 { c.Status(fiber.StatusBadRequest) return c.JSON(fiber.Map{ "message": "Requisição inválida (usuário inexistente)", }) } dateformat := "02/01/2006 15:04" if data["startDt"] == "" { c.Status(fiber.StatusBadRequest) return c.JSON(fiber.Map{ "message": "Requisição inválida (sem data)", }) } else { startdt, err = time.Parse(dateformat, data["startDt"]) if err != nil { c.Status(fiber.StatusBadRequest) return c.JSON(fiber.Map{ "message": "Requisição inválida (data inválida)", }) } } event := models.Event{ Name: data["name"], UserId: user.Id, User: user, ExpectedDate: startdt, EventType: data["eventtype"], } database.DB.Create(&event) if event.Id == 0 { c.Status(fiber.StatusBadRequest) return c.JSON(fiber.Map{ "message": "(E1) - Não foi possível criar o evento", }) } c.SendStatus(fiber.StatusCreated) return c.JSON(event) }