From 4fa155cafb033c8382ff7e42debb7c570bb70fb8 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 16 Feb 2025 19:44:00 +0800 Subject: [PATCH] :necktie: Delete realm will auto delete realm members --- pkg/internal/services/realms.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/internal/services/realms.go b/pkg/internal/services/realms.go index ee00fa4..fee5191 100644 --- a/pkg/internal/services/realms.go +++ b/pkg/internal/services/realms.go @@ -3,11 +3,12 @@ package services import ( "errors" "fmt" + "strconv" + "git.solsynth.dev/hypernet/passport/pkg/authkit/models" "git.solsynth.dev/hypernet/passport/pkg/internal/database" "github.com/samber/lo" "gorm.io/gorm" - "strconv" ) func ListCommunityRealm() ([]models.Realm, error) { @@ -162,5 +163,14 @@ func EditRealm(realm models.Realm) (models.Realm, error) { } func DeleteRealm(realm models.Realm) error { - return database.C.Delete(&realm).Error + tx := database.C.Begin() + if err := tx.Where("realm_id = ?", realm.ID).Delete(&models.RealmMember{}).Error; err != nil { + tx.Rollback() + return err + } + if err := tx.Delete(&realm).Error; err != nil { + tx.Rollback() + return err + } + return tx.Commit().Error }