Files
memberDB/api/eventHandler.go
2025-11-04 08:24:27 +01:00

160 lines
3.4 KiB
Go

package api
import (
"net/http"
"strconv"
"gitea.tecamino.com/paadi/memberDB/models"
"github.com/gin-gonic/gin"
)
func (a *APIHandler) StartNewEvent(c *gin.Context) {
if !a.DBHandlerIsInitialized() {
a.logger.Error("StartNewEvent", "database handler is not initialized")
c.JSON(http.StatusInternalServerError, nil)
return
}
name := c.Query("name")
if name == "" {
a.logger.Error("StartNewEvent", "missing query 'name'")
c.JSON(http.StatusInternalServerError, nil)
return
}
if err := a.DbHandler.StartNewEvent(name); err != nil {
a.logger.Error("StartNewEvent", err)
c.JSON(http.StatusBadRequest, gin.H{"message": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{
"message": "New Event added " + name,
})
}
func (a *APIHandler) GetEvent(c *gin.Context) {
if !a.DBHandlerIsInitialized() {
a.logger.Error("GetEvent", "database handler is not initialized")
c.JSON(http.StatusInternalServerError, nil)
return
}
var i int
var err error
id := c.Query("id")
if id != "" {
i, err = strconv.Atoi(id)
if err != nil {
a.logger.Error("GetEvent", err)
c.JSON(http.StatusInternalServerError, nil)
return
}
}
events, err := a.DbHandler.GetEvent(uint(i))
if err != nil {
a.logger.Error("GetEvent", err)
c.JSON(http.StatusBadRequest, nil)
return
}
c.JSON(http.StatusOK, events)
}
func (a *APIHandler) DeleteEvent(c *gin.Context) {
if !a.DBHandlerIsInitialized() {
a.logger.Error("DeleteEvent", "database handler is not initialized")
c.JSON(http.StatusInternalServerError, nil)
return
}
var err error
var request struct {
Ids []uint `json:"ids"`
}
err = c.BindJSON(&request)
if err != nil {
a.logger.Error("DeleteEvent", err)
c.JSON(http.StatusBadRequest, nil)
return
}
err = a.DbHandler.DeleteEvent(request.Ids...)
if err != nil {
a.logger.Error("DeleteEvent", err)
c.JSON(http.StatusBadRequest, gin.H{
"message": err.Error(),
})
return
}
c.JSON(http.StatusOK, gin.H{
"message": "event deleted",
})
}
func (a *APIHandler) AddNewAttendees(c *gin.Context) {
if !a.DBHandlerIsInitialized() {
a.logger.Error("AddNewAttendees", "database handler is not initialized")
c.JSON(http.StatusInternalServerError, nil)
return
}
var event models.Event
err := c.BindJSON(&event)
if err != nil {
a.logger.Error("AddNewAttendees", err)
c.JSON(http.StatusInternalServerError, nil)
return
}
err = a.DbHandler.AddAttendeesToEvent(event)
if err != nil {
a.logger.Error("AddNewAttendees", err)
c.JSON(http.StatusInternalServerError, gin.H{
"message": err.Error(),
})
return
}
c.JSON(http.StatusOK, gin.H{
"message": "attendee(s) added",
})
}
func (a *APIHandler) DeleteAttendee(c *gin.Context) {
if !a.DBHandlerIsInitialized() {
a.logger.Error("DeleteAttendee", "database handler is not initialized")
c.JSON(http.StatusInternalServerError, nil)
return
}
var err error
var event models.Event
err = c.BindJSON(&event)
if err != nil {
a.logger.Error("DeleteAttendee", err)
c.JSON(http.StatusInternalServerError, nil)
return
}
err = a.DbHandler.DeleteAttendeesFromEvent(event)
if err != nil {
a.logger.Error("DeleteAttendee", err)
c.JSON(http.StatusInternalServerError, gin.H{
"message": err.Error(),
})
return
}
c.JSON(http.StatusOK, gin.H{
"message": "attendee(s) deleted",
})
}