admin: When deleting team, also delete associations

This commit is contained in:
nemunaire 2022-02-03 10:16:52 +01:00
parent 2ca2018485
commit 02bd5f316a
3 changed files with 28 additions and 10 deletions

View file

@ -53,10 +53,7 @@ func init() {
})))
router.PUT("/api/teams/:tid/", apiHandler(teamHandler(updateTeam)))
router.POST("/api/teams/:tid/", apiHandler(teamHandler(addTeamMember)))
router.DELETE("/api/teams/:tid/", apiHandler(teamHandler(
func(team *fic.Team, _ []byte) (interface{}, error) {
return team.Delete()
})))
router.DELETE("/api/teams/:tid/", apiHandler(teamHandler(deleteTeam)))
router.GET("/api/teams/:tid/score-grid.json", apiHandler(teamHandler(
func(team *fic.Team, _ []byte) (interface{}, error) {
return team.ScoreGrid()
@ -229,6 +226,23 @@ func enableAllTeams(_ httprouter.Params, _ []byte) (interface{}, error) {
}
}
func deleteTeam(team *fic.Team, _ []byte) (interface{}, error) {
assocs, err := pki.GetTeamAssociations(TeamsDir, team.Id)
if err != nil {
return nil, err
}
for _, assoc := range assocs {
err = pki.DeleteTeamAssociation(TeamsDir, assoc)
}
if err != nil {
return nil, err
}
return team.Delete()
}
func addTeamMember(team *fic.Team, body []byte) (interface{}, error) {
var members []fic.Member
if err := json.Unmarshal(body, &members); err != nil {