OS API: fixed regression on roles filed, fixes #818
This commit is contained in:
@@ -75,8 +75,10 @@ namespace lms::api::subsonic
|
|||||||
artistNode.setAttribute("coverArt", idToString(coverArtId));
|
artistNode.setAttribute("coverArt", idToString(coverArtId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool hasAlbums{};
|
||||||
{
|
{
|
||||||
std::size_t count{ Release::getCount(context.getDbSession(), Release::FindParameters{}.setArtist(artist->getId())) };
|
std::size_t count{ Release::getCount(context.getDbSession(), Release::FindParameters{}.setArtist(artist->getId())) };
|
||||||
|
hasAlbums = count > 0;
|
||||||
|
|
||||||
// TODO: not very efficient
|
// TODO: not very efficient
|
||||||
Release::find(context.getDbSession(), Release::FindParameters{}.setTrackArtist(artist->getId()), [&](const db::Release::pointer& release) {
|
Release::find(context.getDbSession(), Release::FindParameters{}.setTrackArtist(artist->getId()), [&](const db::Release::pointer& release) {
|
||||||
@@ -105,11 +107,13 @@ namespace lms::api::subsonic
|
|||||||
|
|
||||||
artistNode.setAttribute("sortName", artist->getSortName());
|
artistNode.setAttribute("sortName", artist->getSortName());
|
||||||
|
|
||||||
// roles
|
|
||||||
Response::Node roles;
|
Response::Node roles;
|
||||||
artistNode.createEmptyArrayValue("roles");
|
artistNode.createEmptyArrayValue("roles");
|
||||||
for (const TrackArtistLinkType linkType : TrackArtistLink::findUsedTypes(context.getDbSession(), artist->getId()))
|
for (const TrackArtistLinkType linkType : TrackArtistLink::findUsedTypes(context.getDbSession(), artist->getId()))
|
||||||
artistNode.addArrayValue("roles", utils::toString(linkType));
|
artistNode.addArrayValue("roles", utils::toString(linkType));
|
||||||
|
|
||||||
|
if (hasAlbums)
|
||||||
|
artistNode.addArrayValue("roles", "albumartist");
|
||||||
}
|
}
|
||||||
|
|
||||||
return artistNode;
|
return artistNode;
|
||||||
|
|||||||
Reference in New Issue
Block a user