👔 Delete realm will auto delete realm members

This commit is contained in:
LittleSheep 2025-02-16 19:44:00 +08:00
parent 1bb73c996b
commit 4fa155cafb

View File

@ -3,11 +3,12 @@ package services
import ( import (
"errors" "errors"
"fmt" "fmt"
"strconv"
"git.solsynth.dev/hypernet/passport/pkg/authkit/models" "git.solsynth.dev/hypernet/passport/pkg/authkit/models"
"git.solsynth.dev/hypernet/passport/pkg/internal/database" "git.solsynth.dev/hypernet/passport/pkg/internal/database"
"github.com/samber/lo" "github.com/samber/lo"
"gorm.io/gorm" "gorm.io/gorm"
"strconv"
) )
func ListCommunityRealm() ([]models.Realm, error) { func ListCommunityRealm() ([]models.Realm, error) {
@ -162,5 +163,14 @@ func EditRealm(realm models.Realm) (models.Realm, error) {
} }
func DeleteRealm(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
} }