Iterate on clusters to better trace
This commit is contained in:
@@ -113,6 +113,14 @@ namespace lms::db
|
||||
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)
|
||||
{
|
||||
session.checkReadTransaction();
|
||||
|
||||
@@ -132,9 +132,11 @@ namespace lms::api::subsonic
|
||||
params.setRelease(release->getId());
|
||||
params.setClusterTypeName(clusterTypeName);
|
||||
|
||||
for (const auto& cluster : Cluster::find(context.dbSession, params).results)
|
||||
albumNode.addArrayValue(field, cluster->getName());
|
||||
} };
|
||||
Cluster::find(context.dbSession, params, [&](const Cluster::pointer& cluster)
|
||||
{
|
||||
albumNode.addArrayValue(field, cluster->getName());
|
||||
});
|
||||
}};
|
||||
|
||||
addClusters("moods", "MOOD");
|
||||
|
||||
@@ -146,8 +148,10 @@ namespace lms::api::subsonic
|
||||
params.setRelease(release->getId());
|
||||
params.setClusterType(genreClusterType->getId());
|
||||
|
||||
for (const auto& cluster : Cluster::find(context.dbSession, params).results)
|
||||
albumNode.addArrayChild("genres", createItemGenreNode(cluster->getName()));
|
||||
Cluster::find(context.dbSession, params, [&](const Cluster::pointer& cluster)
|
||||
{
|
||||
albumNode.addArrayChild("genres", createItemGenreNode(cluster->getName()));
|
||||
});
|
||||
}
|
||||
|
||||
albumNode.createEmptyArrayChild("artists");
|
||||
|
||||
Reference in New Issue
Block a user