Add multiple genres to Albums
This commit is contained in:
@@ -54,3 +54,30 @@ func (r *sqlRepository) loadMediaFileGenres(mfs *model.MediaFiles) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *sqlRepository) loadAlbumGenres(mfs *model.Albums) error {
|
||||
var ids []string
|
||||
m := map[string]*model.Album{}
|
||||
for i := range *mfs {
|
||||
mf := &(*mfs)[i]
|
||||
ids = append(ids, mf.ID)
|
||||
m[mf.ID] = mf
|
||||
}
|
||||
|
||||
sql := Select("g.*", "ag.album_id").From("genre g").Join("album_genres ag on ag.genre_id = g.id").
|
||||
Where(Eq{"ag.album_id": ids}).OrderBy("ag.album_id", "ag.rowid")
|
||||
var genres []struct {
|
||||
model.Genre
|
||||
AlbumId string
|
||||
}
|
||||
|
||||
err := r.queryAll(sql, &genres)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, g := range genres {
|
||||
mf := m[g.AlbumId]
|
||||
mf.Genres = append(mf.Genres, g.Genre)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user