Added release tag cloud

This commit is contained in:
emeric
2018-02-25 12:27:16 +01:00
parent e9da3adbf6
commit d6f0e34b62
7 changed files with 43 additions and 6 deletions
-2
View File
@@ -202,6 +202,4 @@ Artist::getClusters(int size) const
return std::vector<Cluster::pointer>(res.begin(), res.end());
}
} // namespace Database
+19
View File
@@ -225,4 +225,23 @@ Release::getTracks(const std::set<id_type>& clusterIds) const
return std::vector< Wt::Dbo::ptr<Track> > (res.begin(), res.end());
}
std::vector<Wt::Dbo::ptr<Cluster>>
Release::getClusters(int size) const
{
assert(self());
assert(self()->id() != Wt::Dbo::dbo_traits<Artist>::invalidId() );
assert(session());
Wt::Dbo::Query<Cluster::pointer> query = session()->query<Cluster::pointer>
("select c from cluster c INNER JOIN track t ON c.id = t_c.cluster_id INNER JOIN track_cluster t_c ON t_c.track_id = t.id INNER JOIN release r ON t.release_id = r.id")
.where("r.id = ?").bind(self()->id())
.groupBy("c.id")
.orderBy("COUNT(c.id) DESC")
.limit(size);
Wt::Dbo::collection<Cluster::pointer> res = query;
return std::vector<Cluster::pointer>(res.begin(), res.end());
}
} // namespace Database
+1
View File
@@ -57,6 +57,7 @@ class Release : public Wt::Dbo::Dbo<Release>
bool& moreExpected);
std::vector<Wt::Dbo::ptr<Track>> getTracks(const std::set<id_type>& clusters = std::set<id_type>()) const;
std::vector<Wt::Dbo::ptr<Cluster>> getClusters(int size) const;
// Create
static pointer create(Wt::Dbo::Session& session, const std::string& name, const std::string& MBID = "");