diff --git a/api/membersHandler.go b/api/membersHandler.go index 6fe73da..3521cd2 100644 --- a/api/membersHandler.go +++ b/api/membersHandler.go @@ -93,50 +93,33 @@ func (a *APIHandler) GetMember(c *gin.Context) { c.JSON(http.StatusOK, members) } -func (a *APIHandler) EditMember(c *gin.Context) { +func (a *APIHandler) UpdateMember(c *gin.Context) { if !a.DBHandlerIsInitialized() { a.logger.Error("EditMember", "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("EditMember", err) - c.JSON(http.StatusInternalServerError, nil) - return - } - } else { - a.logger.Error("EditMember", err) - c.JSON(http.StatusBadRequest, gin.H{ - "message": "query parameter 'id' missing", - }) - return - } - - var member models.Member - err = c.BindJSON(&member) + var members []models.Member + err := c.BindJSON(&members) if err != nil { a.logger.Error("EditMember", err) c.JSON(http.StatusInternalServerError, nil) return } - err = a.DbHandler.UpdateMember(i, member) - if err != nil { - a.logger.Error("EditMember", err) - c.JSON(http.StatusBadRequest, gin.H{ - "message": err.Error(), - }) - return + for _, member := range members { + err = a.DbHandler.UpdateMember(member.Id, member) + if err != nil { + a.logger.Error("EditMember", err) + c.JSON(http.StatusBadRequest, gin.H{ + "message": err.Error(), + }) + return + } } c.JSON(http.StatusOK, gin.H{ - "message": "member updated", + "message": "member(s) updated", }) } diff --git a/member_test.go b/member_test.go index a0e212e..486e8ac 100644 --- a/member_test.go +++ b/member_test.go @@ -44,7 +44,7 @@ func TestErrors(t *testing.T) { v1.POST("/database/open", apiHandler.OpenDatabase) v1.POST("/members/add", apiHandler.AddNewMember) - v1.POST("/members/edit", apiHandler.EditMember) + v1.POST("/members/edit", apiHandler.UpdateMember) v1.POST("/members/delete", apiHandler.DeleteMember) v1.POST("/members/import/csv", apiHandler.ImportCSV)