refactor(subsonic): don't make getMusicFolder a method of ctrl

This commit is contained in:
sentriz
2022-11-02 22:21:19 +00:00
parent 6e6404af73
commit 131e56b3e6
4 changed files with 29 additions and 29 deletions

View File

@@ -117,14 +117,3 @@ func (c *Controller) HR(h handlerSubsonicRaw) http.Handler {
}
})
}
func (c *Controller) getMusicFolder(p params.Params) string {
idx, err := p.GetInt("musicFolderId")
if err != nil {
return ""
}
if idx < 0 || idx > len(c.MusicPaths) {
return ""
}
return c.MusicPaths[idx]
}

View File

@@ -25,7 +25,7 @@ func (c *Controller) ServeGetIndexes(r *http.Request) *spec.Response {
Select("id").
Model(&db.Album{}).
Where("parent_id IS NULL")
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
rootQ = rootQ.
Where("root_dir=?", m)
}
@@ -168,7 +168,7 @@ func (c *Controller) ServeGetAlbumList(r *http.Request) *spec.Response {
return spec.NewError(10, "unknown value `%s` for parameter 'type'", v)
}
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("root_dir=?", m)
}
var folders []*db.Album
@@ -211,7 +211,7 @@ func (c *Controller) ServeSearchTwo(r *http.Request) *spec.Response {
Select("id").
Model(&db.Album{}).
Where("parent_id IS NULL")
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
rootQ = rootQ.Where("root_dir=?", m)
}
@@ -237,7 +237,7 @@ func (c *Controller) ServeSearchTwo(r *http.Request) *spec.Response {
Preload("AlbumRating", "user_id=?", user.ID).
Offset(params.GetOrInt("albumOffset", 0)).
Limit(params.GetOrInt("albumCount", 20))
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("root_dir=?", m)
}
if err := q.Find(&albums).Error; err != nil {
@@ -256,7 +256,7 @@ func (c *Controller) ServeSearchTwo(r *http.Request) *spec.Response {
Preload("TrackRating", "user_id=?", user.ID).
Offset(params.GetOrInt("songOffset", 0)).
Limit(params.GetOrInt("songCount", 20))
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.
Joins("JOIN albums ON albums.id=tracks.album_id").
Where("albums.root_dir=?", m)
@@ -294,7 +294,7 @@ func (c *Controller) ServeGetStarred(r *http.Request) *spec.Response {
Select("id").
Model(&db.Album{}).
Where("parent_id IS NULL")
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
rootQ = rootQ.Where("root_dir=?", m)
}
@@ -320,7 +320,7 @@ func (c *Controller) ServeGetStarred(r *http.Request) *spec.Response {
Where("album_stars.user_id=?", user.ID).
Preload("AlbumStar", "user_id=?", user.ID).
Preload("AlbumRating", "user_id=?", user.ID)
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("root_dir=?", m)
}
if err := q.Find(&albums).Error; err != nil {
@@ -338,7 +338,7 @@ func (c *Controller) ServeGetStarred(r *http.Request) *spec.Response {
Where("track_stars.user_id=?", user.ID).
Preload("TrackStar", "user_id=?", user.ID).
Preload("TrackRating", "user_id=?", user.ID)
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.
Joins("JOIN albums ON albums.id=tracks.album_id").
Where("albums.root_dir=?", m)

View File

@@ -30,7 +30,7 @@ func (c *Controller) ServeGetArtists(r *http.Request) *spec.Response {
Preload("ArtistRating", "user_id=?", user.ID).
Group("artists.id").
Order("artists.name COLLATE NOCASE")
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("sub.root_dir=?", m)
}
if err := q.Find(&artists).Error; err != nil {
@@ -177,7 +177,7 @@ func (c *Controller) ServeGetAlbumListTwo(r *http.Request) *spec.Response {
default:
return spec.NewError(10, "unknown value `%s` for parameter 'type'", listType)
}
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("root_dir=?", m)
}
var albums []*db.Album
@@ -226,7 +226,7 @@ func (c *Controller) ServeSearchThree(r *http.Request) *spec.Response {
Preload("ArtistRating", "user_id=?", user.ID).
Offset(params.GetOrInt("artistOffset", 0)).
Limit(params.GetOrInt("artistCount", 20))
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("albums.root_dir=?", m)
}
if err := q.Find(&artists).Error; err != nil {
@@ -246,7 +246,7 @@ func (c *Controller) ServeSearchThree(r *http.Request) *spec.Response {
Where("tag_title LIKE ? OR tag_title_u_dec LIKE ?", query, query).
Offset(params.GetOrInt("albumOffset", 0)).
Limit(params.GetOrInt("albumCount", 20))
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("root_dir=?", m)
}
if err := q.Find(&albums).Error; err != nil {
@@ -267,7 +267,7 @@ func (c *Controller) ServeSearchThree(r *http.Request) *spec.Response {
Where("tag_title LIKE ? OR tag_title_u_dec LIKE ?", query, query).
Offset(params.GetOrInt("songOffset", 0)).
Limit(params.GetOrInt("songCount", 20))
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.
Joins("JOIN albums ON albums.id=tracks.album_id").
Where("albums.root_dir=?", m)
@@ -412,7 +412,7 @@ func (c *Controller) ServeGetSongsByGenre(r *http.Request) *spec.Response {
Preload("TrackRating", "user_id=?", user.ID).
Offset(params.GetOrInt("offset", 0)).
Limit(params.GetOrInt("count", 10))
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("albums.root_dir=?", m)
}
if err := q.Find(&tracks).Error; err != nil {
@@ -448,7 +448,7 @@ func (c *Controller) ServeGetStarredTwo(r *http.Request) *spec.Response {
Where("artist_stars.user_id=?", user.ID).
Preload("ArtistStar", "user_id=?", user.ID).
Preload("ArtistRating", "user_id=?", user.ID)
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("albums.root_dir=?", m)
}
if err := q.Find(&artists).Error; err != nil {
@@ -466,7 +466,7 @@ func (c *Controller) ServeGetStarredTwo(r *http.Request) *spec.Response {
Preload("TagArtist").
Preload("AlbumStar", "user_id=?", user.ID).
Preload("AlbumRating", "user_id=?", user.ID)
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("albums.root_dir=?", m)
}
if err := q.Find(&albums).Error; err != nil {
@@ -484,7 +484,7 @@ func (c *Controller) ServeGetStarredTwo(r *http.Request) *spec.Response {
Preload("Album").
Preload("TrackStar", "user_id=?", user.ID).
Preload("TrackRating", "user_id=?", user.ID)
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.
Joins("JOIN albums ON albums.id=tracks.album_id").
Where("albums.root_dir=?", m)

View File

@@ -26,6 +26,17 @@ func lowerUDecOrHash(in string) string {
return string(lower)
}
func getMusicFolder(musicPaths []string, p params.Params) string {
idx, err := p.GetInt("musicFolderId")
if err != nil {
return ""
}
if idx < 0 || idx > len(musicPaths) {
return ""
}
return musicPaths[idx]
}
func (c *Controller) ServeGetLicence(r *http.Request) *spec.Response {
sub := spec.NewResponse()
sub.Licence = &spec.Licence{
@@ -239,7 +250,7 @@ func (c *Controller) ServeGetRandomSongs(r *http.Request) *spec.Response {
q = q.Joins("JOIN track_genres ON track_genres.track_id=tracks.id")
q = q.Joins("JOIN genres ON genres.id=track_genres.genre_id AND genres.name=?", genre)
}
if m := c.getMusicFolder(params); m != "" {
if m := getMusicFolder(c.MusicPaths, params); m != "" {
q = q.Where("albums.root_dir=?", m)
}
if err := q.Find(&tracks).Error; err != nil {