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 } var event models.Event err := c.BindJSON(&event) if err != nil { a.logger.Error("StartNewEvent", err) c.JSON(http.StatusInternalServerError, nil) return } if err := a.DbHandler.StartNewEvent(event); 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 " + event.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) UpdateEvent(c *gin.Context) { if !a.DBHandlerIsInitialized() { a.logger.Error("UpdateEvent", "database handler is not initialized") c.JSON(http.StatusInternalServerError, nil) return } var events []models.Event err := c.BindJSON(&events) if err != nil { a.logger.Error("UpdateEvent", err) c.JSON(http.StatusInternalServerError, nil) return } for _, event := range events { err = a.DbHandler.UpdateEvent(event.Id, event) if err != nil { a.logger.Error("UpdateEvent", err) c.JSON(http.StatusBadRequest, gin.H{ "message": err.Error(), }) return } } c.JSON(http.StatusOK, gin.H{ "message": "event(s) updated", }) } 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", }) }