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);
|
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();
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
Reference in New Issue
Block a user