From 402f755497b9728de744efb8db4586320749b60a Mon Sep 17 00:00:00 2001 From: henne <accounts@hfellerhoff.de> Date: Sat, 8 Mar 2025 20:30:12 +0100 Subject: [PATCH] fix: delete associations first when deleting token or machine --- main.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index dc51ee2..af38165 100644 --- a/main.go +++ b/main.go @@ -121,14 +121,26 @@ func editMachine(c *gin.Context) { c.Redirect(http.StatusFound, "/machines") } func deleteMachine(c *gin.Context) { - if err := db.DB.Where("id = ?", c.Param("id")).Delete(db.Machine{}).Error; err != nil { + var machine db.Machine + if err := db.DB.Where("id = ?", c.Param("id")).First(&machine).Error; err != nil { + returnInternalError(c, err) + return + } + db.DB.Model(&machine).Association("Tokens").Clear() + if err := db.DB.Delete(machine).Error; err != nil { returnInternalError(c, err) return } c.Redirect(http.StatusFound, "/machines") } func deleteToken(c *gin.Context) { - if err := db.DB.Where("id = ?", c.Param("id")).Delete(db.Token{}).Error; err != nil { + var token db.Token + if err := db.DB.Where("id = ?", c.Param("id")).First(&token).Error; err != nil { + returnInternalError(c, err) + return + } + db.DB.Model(&token).Association("Machines").Clear() + if err := db.DB.Delete(token).Error; err != nil { returnInternalError(c, err) return }