✨ Creator hub
This commit is contained in:
@ -3,6 +3,7 @@ package services
|
||||
import (
|
||||
"code.smartsheep.studio/hydrogen/interactive/pkg/database"
|
||||
"code.smartsheep.studio/hydrogen/interactive/pkg/models"
|
||||
"github.com/samber/lo"
|
||||
)
|
||||
|
||||
func ListRealm() ([]models.Realm, error) {
|
||||
@ -23,6 +24,28 @@ func ListRealmWithUser(user models.Account) ([]models.Realm, error) {
|
||||
return realms, nil
|
||||
}
|
||||
|
||||
func ListRealmIsAvailable(user models.Account) ([]models.Realm, error) {
|
||||
var realms []models.Realm
|
||||
var members []models.RealmMember
|
||||
if err := database.C.Where(&models.RealmMember{
|
||||
AccountID: user.ID,
|
||||
}).Find(&members).Error; err != nil {
|
||||
return realms, err
|
||||
}
|
||||
|
||||
idx := lo.Map(members, func(item models.RealmMember, index int) uint {
|
||||
return item.RealmID
|
||||
})
|
||||
|
||||
if err := database.C.Where(&models.Realm{
|
||||
IsPublic: true,
|
||||
}).Or("id IN ?", idx).Find(&realms).Error; err != nil {
|
||||
return realms, err
|
||||
}
|
||||
|
||||
return realms, nil
|
||||
}
|
||||
|
||||
func NewRealm(user models.Account, name, description string, isPublic bool) (models.Realm, error) {
|
||||
realm := models.Realm{
|
||||
Name: name,
|
||||
|
Reference in New Issue
Block a user