package api import ( "net/http" "strconv" "gitea.tecamino.com/paadi/memberDB/models" "github.com/gin-gonic/gin" ) func (a *APIHandler) NewGroup(c *gin.Context) { if !a.DBHandlerIsInitialized() { a.logger.Error("StartNewEvent", "database handler is not initialized") c.JSON(http.StatusInternalServerError, nil) return } var group models.Group err := c.BindJSON(&group) if err != nil { a.logger.Error("NewGroup", err) c.JSON(http.StatusInternalServerError, nil) return } if err := a.DbHandler.NewGroup(&group); err != nil { a.logger.Error("NewGroup", err) c.JSON(http.StatusBadRequest, gin.H{"message": err.Error()}) return } c.JSON(http.StatusOK, gin.H{ "message": "New group added " + group.Name, }) } func (a *APIHandler) GetGroup(c *gin.Context) { if !a.DBHandlerIsInitialized() { a.logger.Error("GetGroup", "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("GetGroup", err) c.JSON(http.StatusInternalServerError, nil) return } } groups, err := a.DbHandler.GetGroup(uint(i)) if err != nil { a.logger.Error("GetGroup", err) c.JSON(http.StatusBadRequest, nil) return } c.JSON(http.StatusOK, groups) } func (a *APIHandler) UpdateGroup(c *gin.Context) { if !a.DBHandlerIsInitialized() { a.logger.Error("UpdateGroup", "database handler is not initialized") c.JSON(http.StatusInternalServerError, nil) return } var groups []models.Group err := c.BindJSON(&groups) if err != nil { a.logger.Error("UpdateGroup", err) c.JSON(http.StatusInternalServerError, nil) return } for _, event := range groups { err = a.DbHandler.UpdateGroup(event.Id, event) if err != nil { a.logger.Error("UpdateGroup", err) c.JSON(http.StatusBadRequest, gin.H{ "message": err.Error(), }) return } } c.JSON(http.StatusOK, gin.H{ "message": "group(s) updated", }) } func (a *APIHandler) DeleteGroup(c *gin.Context) { if !a.DBHandlerIsInitialized() { a.logger.Error("DeleteGroup", "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("DeleteGroup", err) c.JSON(http.StatusBadRequest, nil) return } err = a.DbHandler.DeleteGroup(request.Ids...) if err != nil { a.logger.Error("DeleteGroup", err) c.JSON(http.StatusBadRequest, gin.H{ "message": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "message": "group deleted", }) }