apifiber/controllers/eventController.go

67 lines
1.2 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
}
user := dbaccess.GetUserById(u)
if user.Id == 0 {
return fiber.ErrBadRequest
}
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"],
UserId: user.Id,
User: user,
Channel: user.Channel,
ExpectedDate: startdt,
EventType: data["eventtype"],
}
database.DB.Create(&event)
if event.Id == 0 {
return fiber.ErrNotAcceptable
}
return c.JSON(fiber.Map{
"event": event,
})
}