OS API: fixed regression on roles filed, fixes #818

This commit is contained in:
emeric
2026-02-19 22:16:41 +01:00
parent 54f3ad07f7
commit 39dff9c7c4
+5 -1
View File
@@ -75,8 +75,10 @@ namespace lms::api::subsonic
artistNode.setAttribute("coverArt", idToString(coverArtId));
}
bool hasAlbums{};
{
std::size_t count{ Release::getCount(context.getDbSession(), Release::FindParameters{}.setArtist(artist->getId())) };
hasAlbums = count > 0;
// TODO: not very efficient
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());
// roles
Response::Node roles;
artistNode.createEmptyArrayValue("roles");
for (const TrackArtistLinkType linkType : TrackArtistLink::findUsedTypes(context.getDbSession(), artist->getId()))
artistNode.addArrayValue("roles", utils::toString(linkType));
if (hasAlbums)
artistNode.addArrayValue("roles", "albumartist");
}
return artistNode;