Reduce number of queries for some playlists operations.

Also allow admins to update/delete playlists from other users in the Subsonic API. Closes #1366
This commit is contained in:
Deluan
2021-10-16 13:47:10 -04:00
committed by Deluan Quintão
parent 943082ef4e
commit d200933b68
7 changed files with 26 additions and 38 deletions
+4 -4
View File
@@ -105,6 +105,10 @@ func (r *playlistRepository) Put(p *model.Playlist) error {
}
func (r *playlistRepository) Get(id string) (*model.Playlist, error) {
return r.findBy(And{Eq{"id": id}, r.userFilter()}, false)
}
func (r *playlistRepository) GetWithTracks(id string) (*model.Playlist, error) {
return r.findBy(And{Eq{"id": id}, r.userFilter()}, true)
}
@@ -112,10 +116,6 @@ func (r *playlistRepository) FindByPath(path string) (*model.Playlist, error) {
return r.findBy(Eq{"path": path}, false)
}
func (r *playlistRepository) FindByID(id string) (*model.Playlist, error) {
return r.findBy(And{Eq{"id": id}, r.userFilter()}, false)
}
func (r *playlistRepository) findBy(sql Sqlizer, includeTracks bool) (*model.Playlist, error) {
sel := r.newSelect().Columns("*").Where(sql)
var pls []dbPlaylist