refactor(subsonic): don't make getMusicFolder a method of ctrl
This commit is contained in:
@@ -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]
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user