Iterate on clusters to better trace

This commit is contained in:
emeric
2024-04-17 18:32:11 +02:00
parent 78dd0302d0
commit e92fcb79de
2 changed files with 17 additions and 5 deletions
+8
View File
@@ -113,6 +113,14 @@ namespace lms::db
return utils::execRangeQuery<Cluster::pointer>(query, params.range); return utils::execRangeQuery<Cluster::pointer>(query, params.range);
} }
void Cluster::find(Session& session, const FindParameters& params, std::function<void(const pointer& cluster)> _func)
{
session.checkReadTransaction();
auto query{ createQuery<Wt::Dbo::ptr<Cluster>>(session, params) };
return utils::forEachQueryResult(query, _func);
}
RangeResults<ClusterId> Cluster::findOrphanIds(Session& session, std::optional<Range> range) RangeResults<ClusterId> Cluster::findOrphanIds(Session& session, std::optional<Range> range)
{ {
session.checkReadTransaction(); session.checkReadTransaction();
+9 -5
View File
@@ -132,9 +132,11 @@ namespace lms::api::subsonic
params.setRelease(release->getId()); params.setRelease(release->getId());
params.setClusterTypeName(clusterTypeName); params.setClusterTypeName(clusterTypeName);
for (const auto& cluster : Cluster::find(context.dbSession, params).results) Cluster::find(context.dbSession, params, [&](const Cluster::pointer& cluster)
albumNode.addArrayValue(field, cluster->getName()); {
} }; albumNode.addArrayValue(field, cluster->getName());
});
}};
addClusters("moods", "MOOD"); addClusters("moods", "MOOD");
@@ -146,8 +148,10 @@ namespace lms::api::subsonic
params.setRelease(release->getId()); params.setRelease(release->getId());
params.setClusterType(genreClusterType->getId()); params.setClusterType(genreClusterType->getId());
for (const auto& cluster : Cluster::find(context.dbSession, params).results) Cluster::find(context.dbSession, params, [&](const Cluster::pointer& cluster)
albumNode.addArrayChild("genres", createItemGenreNode(cluster->getName())); {
albumNode.addArrayChild("genres", createItemGenreNode(cluster->getName()));
});
} }
albumNode.createEmptyArrayChild("artists"); albumNode.createEmptyArrayChild("artists");