parent
f79d379e38
commit
1cd34109b6
|
@ -165,18 +165,8 @@ func (user *User) FillAlbums(db *gorm.DB) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (user *User) OwnsAlbum(db *gorm.DB, album *Album) (bool, error) {
|
func (user *User) OwnsAlbum(db *gorm.DB, album *Album) (bool, error) {
|
||||||
|
|
||||||
if err := user.FillAlbums(db); err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
|
|
||||||
albumIDs := make([]int, 0)
|
|
||||||
for _, a := range user.Albums {
|
|
||||||
albumIDs = append(albumIDs, a.ID)
|
|
||||||
}
|
|
||||||
|
|
||||||
filter := func(query *gorm.DB) *gorm.DB {
|
filter := func(query *gorm.DB) *gorm.DB {
|
||||||
return query.Where("id IN (?)", albumIDs)
|
return query.Where("EXISTS (SELECT 1 FROM user_albums WHERE user_albums.user_id = ? AND user_albums.album_id = id LIMIT 1)", user.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
ownedParents, err := album.GetParents(db, filter)
|
ownedParents, err := album.GetParents(db, filter)
|
||||||
|
|
Loading…
Reference in New Issue