Centralized some db filters

This commit is contained in:
emeric
2025-02-09 18:35:09 +01:00
parent 13698c379b
commit b4bce77877
36 changed files with 297 additions and 386 deletions
+14 -14
View File
@@ -49,9 +49,9 @@ namespace lms::db
|| params.linkType
|| params.track.isValid()
|| params.release.isValid()
|| params.clusters.size() == 1
|| params.mediaLibrary.isValid()
|| params.label.isValid())
|| params.filters.clusters.size() == 1
|| params.filters.mediaLibrary.isValid()
|| params.filters.label.isValid())
{
query.join("track_artist_link t_a_l ON t_a_l.artist_id = a.id");
}
@@ -60,8 +60,8 @@ namespace lms::db
|| params.sortMethod == ArtistSortMethod::AddedDesc
|| params.writtenAfter.isValid()
|| params.release.isValid()
|| params.mediaLibrary.isValid()
|| params.label.isValid())
|| params.filters.mediaLibrary.isValid()
|| params.filters.label.isValid())
{
query.join("track t ON t.id = t_a_l.track_id");
@@ -71,13 +71,13 @@ namespace lms::db
if (params.release.isValid())
query.where("t.release_id = ?").bind(params.release);
if (params.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.mediaLibrary);
if (params.filters.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.filters.mediaLibrary);
if (params.label.isValid())
if (params.filters.label.isValid())
{
query.join("release_label r_l ON r_l.release_id = t.release_id");
query.where("r_l.label_id = ?").bind(params.label);
query.where("r_l.label_id = ?").bind(params.filters.label);
}
}
@@ -116,27 +116,27 @@ namespace lms::db
.bind(SyncState::PendingRemove);
}
if (params.clusters.size() == 1)
if (params.filters.clusters.size() == 1)
{
query.join("track_cluster t_c ON t_c.track_id = t_a_l.track_id")
.where("t_c.cluster_id = ?")
.bind(params.clusters.front());
.bind(params.filters.clusters.front());
}
else if (params.clusters.size() > 1)
else if (params.filters.clusters.size() > 1)
{
std::ostringstream oss;
oss << "a.id IN (SELECT DISTINCT t_a_l.artist_id FROM track_artist_link t_a_l"
" INNER JOIN track_cluster t_c ON t_c.track_id = t_a_l.track_id";
WhereClause clusterClause;
for (const ClusterId clusterId : params.clusters)
for (const ClusterId clusterId : params.filters.clusters)
{
clusterClause.Or(WhereClause("t_c.cluster_id = ?"));
query.bind(clusterId);
}
oss << " " << clusterClause.get();
oss << " GROUP BY t_a_l.track_id,t_a_l.artist_id HAVING COUNT(DISTINCT t_c.cluster_id) = " << params.clusters.size() << ")";
oss << " GROUP BY t_a_l.track_id,t_a_l.artist_id HAVING COUNT(DISTINCT t_c.cluster_id) = " << params.filters.clusters.size() << ")";
query.where(oss.str());
}
+22 -22
View File
@@ -42,38 +42,38 @@ namespace lms::db
assert(!params.artist.isValid()); // poor check
if (params.library.isValid() || params.label.isValid())
if (params.filters.mediaLibrary.isValid() || params.filters.label.isValid())
{
query.join("track t ON t.id = t_a_l.track_id");
}
if (params.library.isValid())
query.where("t.media_library_id = ?").bind(params.library);
if (params.filters.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.filters.mediaLibrary);
if (params.label.isValid())
if (params.filters.label.isValid())
{
query.join("release_label r_l ON t.release_id = r_l.release_id");
query.where("r_l.label_id = ?").bind(params.label);
query.where("r_l.label_id = ?").bind(params.filters.label);
}
if (params.linkType)
query.where("t_a_l.type = ?").bind(*params.linkType);
if (!params.clusters.empty())
if (!params.filters.clusters.empty())
{
std::ostringstream oss;
oss << "a.id IN (SELECT DISTINCT t_a_l.artist_id FROM track_artist_link t_a_l"
" INNER JOIN track_cluster t_c ON t_c.track_id = t_a_l.track_id";
WhereClause clusterClause;
for (auto id : params.clusters)
for (const db::ClusterId id : params.filters.clusters)
{
clusterClause.Or(WhereClause("t_c.cluster_id = ?"));
query.bind(id);
}
oss << " " << clusterClause.get();
oss << " GROUP BY t_a_l.track_id,t_a_l.artist_id HAVING COUNT(DISTINCT t_c.cluster_id) = " << params.clusters.size() << ")";
oss << " GROUP BY t_a_l.track_id,t_a_l.artist_id HAVING COUNT(DISTINCT t_c.cluster_id) = " << params.filters.clusters.size() << ")";
query.where(oss.str());
}
@@ -118,16 +118,16 @@ namespace lms::db
.bind(params.artist);
}
if (params.library.isValid())
query.where("t.media_library_id = ?").bind(params.library);
if (params.filters.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.filters.mediaLibrary);
if (params.label.isValid())
if (params.filters.label.isValid())
{
query.join("release_label r_l ON r_l.release_id = r.id");
query.where("r_l.label_id = ?").bind(params.label);
query.where("r_l.label_id = ?").bind(params.filters.label);
}
if (!params.clusters.empty())
if (!params.filters.clusters.empty())
{
std::ostringstream oss;
oss << "r.id IN (SELECT DISTINCT r.id FROM release r"
@@ -136,14 +136,14 @@ namespace lms::db
" INNER JOIN track_cluster t_c ON t_c.track_id = t.id";
WhereClause clusterClause;
for (ClusterId id : params.clusters)
for (const ClusterId id : params.filters.clusters)
{
clusterClause.Or(WhereClause("c.id = ?"));
query.bind(id);
}
oss << " " << clusterClause.get();
oss << " GROUP BY t.id HAVING COUNT(DISTINCT c.id) = " << params.clusters.size() << ")";
oss << " GROUP BY t.id HAVING COUNT(DISTINCT c.id) = " << params.filters.clusters.size() << ")";
query.where(oss.str());
}
@@ -171,16 +171,16 @@ namespace lms::db
.bind(params.artist);
}
if (params.library.isValid())
query.where("t.media_library_id = ?").bind(params.library);
if (params.filters.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.filters.mediaLibrary);
if (params.label.isValid())
if (params.filters.label.isValid())
{
query.join("release_label r_l ON r_l.release_id = t.release_id");
query.where("r_l.label_id = ?").bind(params.label);
query.where("r_l.label_id = ?").bind(params.filters.label);
}
if (!params.clusters.empty())
if (!params.filters.clusters.empty())
{
std::ostringstream oss;
oss << "t.id IN (SELECT DISTINCT t.id FROM track t"
@@ -188,14 +188,14 @@ namespace lms::db
" INNER JOIN cluster c ON c.id = t_c.cluster_id";
WhereClause clusterClause;
for (auto id : params.clusters)
for (const ClusterId id : params.filters.clusters)
{
clusterClause.Or(WhereClause("c.id = ?")).bind(id.toString());
query.bind(id);
}
oss << " " << clusterClause.get();
oss << " GROUP BY t.id HAVING COUNT(*) = " << params.clusters.size() << ")";
oss << " GROUP BY t.id HAVING COUNT(*) = " << params.filters.clusters.size() << ")";
query.where(oss.str());
}
+11 -11
View File
@@ -60,8 +60,8 @@ namespace lms::db
|| params.writtenAfter.isValid()
|| params.dateRange
|| params.artist.isValid()
|| params.clusters.size() == 1
|| params.mediaLibrary.isValid()
|| params.filters.clusters.size() == 1
|| params.filters.mediaLibrary.isValid()
|| params.directory.isValid()
|| params.parentDirectory.isValid())
{
@@ -74,13 +74,13 @@ namespace lms::db
query.where("d.parent_directory_id = ?").bind(params.parentDirectory);
}
if (params.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.mediaLibrary);
if (params.filters.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.filters.mediaLibrary);
if (params.label.isValid())
if (params.filters.label.isValid())
{
query.join("release_label r_l ON r_l.release_id = r.id");
query.where("r_l.label_id = ?").bind(params.label);
query.where("r_l.label_id = ?").bind(params.filters.label);
}
if (params.directory.isValid())
@@ -174,27 +174,27 @@ namespace lms::db
}
}
if (params.clusters.size() == 1)
if (params.filters.clusters.size() == 1)
{
query.join("track_cluster t_c ON t_c.track_id = t.id")
.where("t_c.cluster_id = ?")
.bind(params.clusters.front());
.bind(params.filters.clusters.front());
}
else if (params.clusters.size() > 1)
else if (params.filters.clusters.size() > 1)
{
std::ostringstream oss;
oss << "r.id IN (SELECT DISTINCT t.release_id FROM track t"
" INNER JOIN track_cluster t_c ON t_c.track_id = t.id";
WhereClause clusterClause;
for (const ClusterId clusterId : params.clusters)
for (const ClusterId clusterId : params.filters.clusters)
{
clusterClause.Or(WhereClause("t_c.cluster_id = ?"));
query.bind(clusterId);
}
oss << " " << clusterClause.get();
oss << " GROUP BY t.id HAVING COUNT(*) = " << params.clusters.size() << ")";
oss << " GROUP BY t.id HAVING COUNT(*) = " << params.filters.clusters.size() << ")";
query.where(oss.str());
}
+9 -9
View File
@@ -79,28 +79,28 @@ namespace lms::db
.bind(SyncState::PendingRemove);
}
if (params.clusters.size() == 1)
if (params.filters.clusters.size() == 1)
{
// optim
query.join("track_cluster t_c ON t_c.track_id = t.id")
.where("t_c.cluster_id = ?")
.bind(params.clusters.front());
.bind(params.filters.clusters.front());
}
else if (params.clusters.size() > 1)
else if (params.filters.clusters.size() > 1)
{
std::ostringstream oss;
oss << "t.id IN (SELECT DISTINCT t.id FROM track t"
" INNER JOIN track_cluster t_c ON t_c.track_id = t.id";
WhereClause clusterClause;
for (const ClusterId clusterId : params.clusters)
for (const ClusterId clusterId : params.filters.clusters)
{
clusterClause.Or(WhereClause("t_c.cluster_id = ?"));
query.bind(clusterId);
}
oss << " " << clusterClause.get();
oss << " GROUP BY t.id HAVING COUNT(*) = " << params.clusters.size() << ")";
oss << " GROUP BY t.id HAVING COUNT(*) = " << params.filters.clusters.size() << ")";
query.where(oss.str());
}
@@ -159,13 +159,13 @@ namespace lms::db
if (params.discNumber)
query.where("t.disc_number = ?").bind(*params.discNumber);
if (params.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.mediaLibrary);
if (params.filters.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.filters.mediaLibrary);
if (params.label.isValid())
if (params.filters.label.isValid())
{
query.join("release_label r_l ON r_l.release_id = t.release_id");
query.where("r_l.label_id = ?").bind(params.label);
query.where("r_l.label_id = ?").bind(params.filters.label);
}
if (params.directory.isValid())
+18 -7
View File
@@ -42,7 +42,9 @@ namespace lms::db
auto query{ session.getDboSession()->query<ResultType>("SELECT " + std::string{ itemToSelect } + " FROM tracklist t_l") };
if (!params.clusters.empty() || params.mediaLibrary.isValid())
if (!params.filters.clusters.empty()
|| params.filters.mediaLibrary.isValid()
|| params.filters.label.isValid())
{
query.join("tracklist_entry t_l_e ON t_l_e.tracklist_id = t_l.id");
query.groupBy("t_l.id");
@@ -51,11 +53,20 @@ namespace lms::db
for (std::string_view keyword : params.keywords)
query.where("t_l.name LIKE ? ESCAPE '" ESCAPE_CHAR_STR "'").bind("%" + utils::escapeLikeKeyword(keyword) + "%");
if (params.mediaLibrary.isValid())
if (params.filters.mediaLibrary.isValid()
|| params.filters.label.isValid())
{
query.join("track t ON t.id = t_l_e.track_id");
if (params.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.mediaLibrary);
if (params.filters.mediaLibrary.isValid())
query.where("t.media_library_id = ?").bind(params.filters.mediaLibrary);
if (params.filters.label.isValid())
{
query.join("release_label r_l ON r_l.release_id = t.release_id");
query.where("r_l.label_id = ?").bind(params.filters.label);
}
}
if (params.user.isValid())
query.where("t_l.user_id = ?").bind(params.user);
@@ -68,7 +79,7 @@ namespace lms::db
if (params.visibility)
query.where("t_l.visibility = ?").bind(*params.visibility);
if (!params.clusters.empty())
if (!params.filters.clusters.empty())
{
std::ostringstream oss;
oss << "t_l_e.track_id IN (SELECT DISTINCT t.id FROM track t"
@@ -76,14 +87,14 @@ namespace lms::db
" INNER JOIN cluster c ON c.id = t_c.cluster_id";
WhereClause clusterClause;
for (const ClusterId clusterId : params.clusters)
for (const ClusterId clusterId : params.filters.clusters)
{
clusterClause.Or(WhereClause("c.id = ?"));
query.bind(clusterId);
}
oss << " " << clusterClause.get();
oss << " GROUP BY t.id HAVING COUNT(*) = " << params.clusters.size() << ")";
oss << " GROUP BY t.id HAVING COUNT(*) = " << params.filters.clusters.size() << ")";
query.where(oss.str());
}
+4 -16
View File
@@ -32,7 +32,7 @@
#include "core/UUID.hpp"
#include "database/ArtistId.hpp"
#include "database/ClusterId.hpp"
#include "database/LabelId.hpp"
#include "database/Filters.hpp"
#include "database/MediaLibraryId.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
@@ -58,7 +58,7 @@ namespace lms::db
public:
struct FindParameters
{
std::vector<ClusterId> clusters; // if non empty, at least one artist that belongs to these clusters
Filters filters;
std::vector<std::string_view> keywords; // if non empty, name must match all of these keywords (on either name field OR sort name field)
std::optional<TrackArtistLinkType> linkType; // if set, only artists that have produced at least one track with this link type
ArtistSortMethod sortMethod{ ArtistSortMethod::None };
@@ -68,12 +68,10 @@ namespace lms::db
std::optional<FeedbackBackend> feedbackBackend; // and for this feedback backend
TrackId track; // artists involved in this track
ReleaseId release; // artists involved in this release
MediaLibraryId mediaLibrary; // artists that belong to this library
LabelId label; // artists that have issued releases using this label
FindParameters& setClusters(std::span<const ClusterId> _clusters)
FindParameters& setFilters(const Filters& _filters)
{
clusters.assign(std::cbegin(_clusters), std::cend(_clusters));
filters = _filters;
return *this;
}
FindParameters& setKeywords(const std::vector<std::string_view>& _keywords)
@@ -117,16 +115,6 @@ namespace lms::db
release = _release;
return *this;
}
FindParameters& setMediaLibrary(MediaLibraryId _mediaLibrary)
{
mediaLibrary = _mediaLibrary;
return *this;
}
FindParameters& setLabel(LabelId _label)
{
label = _label;
return *this;
}
};
Artist() = default;
@@ -0,0 +1,52 @@
/*
* Copyright (C) 2024 Emeric Poupon
*
* This file is part of LMS.
*
* LMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* LMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <span>
#include "database/ClusterId.hpp"
#include "database/LabelId.hpp"
#include "database/MediaLibraryId.hpp"
namespace lms::db
{
struct Filters
{
MediaLibraryId mediaLibrary; // tracks that belongs to this library
std::vector<ClusterId> clusters; // tracks that belong to all these clusters
LabelId label; // tracks which release has this label
Filters& setClusters(std::span<const ClusterId> _clusters)
{
clusters.assign(std::cbegin(_clusters), std::cend(_clusters));
return *this;
}
Filters& setMediaLibrary(MediaLibraryId _mediaLibrary)
{
mediaLibrary = _mediaLibrary;
return *this;
}
Filters& setLabel(LabelId _label)
{
label = _label;
return *this;
}
};
} // namespace lms::db
+4 -18
View File
@@ -25,10 +25,8 @@
#include <Wt/WDateTime.h>
#include "database/ArtistId.hpp"
#include "database/ClusterId.hpp"
#include "database/LabelId.hpp"
#include "database/Filters.hpp"
#include "database/ListenId.hpp"
#include "database/MediaLibraryId.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
#include "database/TrackId.hpp"
@@ -86,12 +84,10 @@ namespace lms::db
{
UserId user;
std::optional<ScrobblingBackend> backend;
std::vector<ClusterId> clusters; // if non empty, entities that belong to these clusters
db::Filters filters;
std::vector<std::string_view> keywords; // if non empty, name must match all of these keywords
std::optional<Range> range;
ArtistId artist; // if set, matching this artist
MediaLibraryId library;
LabelId label;
StatsFindParameters& setUser(UserId _user)
{
@@ -103,9 +99,9 @@ namespace lms::db
backend = _backend;
return *this;
}
StatsFindParameters& setClusters(const std::vector<ClusterId>& _clusters)
StatsFindParameters& setFilters(const db::Filters& _filters)
{
clusters = _clusters;
filters = _filters;
return *this;
}
StatsFindParameters& setKeywords(const std::vector<std::string_view>& _keywords)
@@ -123,16 +119,6 @@ namespace lms::db
artist = _artist;
return *this;
}
StatsFindParameters& setMediaLibrary(MediaLibraryId _library)
{
library = _library;
return *this;
}
StatsFindParameters& setLabel(LabelId _label)
{
label = _label;
return *this;
}
};
struct ArtistStatsFindParameters : public StatsFindParameters
+4 -17
View File
@@ -20,7 +20,6 @@
#pragma once
#include <optional>
#include <span>
#include <string>
#include <string_view>
#include <vector>
@@ -32,9 +31,9 @@
#include "core/PartialDateTime.hpp"
#include "core/UUID.hpp"
#include "database/ArtistId.hpp"
#include "database/ClusterId.hpp"
#include "database/CountryId.hpp"
#include "database/DirectoryId.hpp"
#include "database/Filters.hpp"
#include "database/LabelId.hpp"
#include "database/MediaLibraryId.hpp"
#include "database/Object.hpp"
@@ -153,7 +152,7 @@ namespace lms::db
public:
struct FindParameters
{
std::vector<ClusterId> clusters; // if non empty, releases that belong to these clusters
Filters filters;
std::vector<std::string_view> keywords; // if non empty, name must match all of these keywords (cannot be set with keywords)
std::string name; // must match this name (cannot be set with keywords)
ReleaseSortMethod sortMethod{ ReleaseSortMethod::None };
@@ -166,14 +165,12 @@ namespace lms::db
core::EnumSet<TrackArtistLinkType> trackArtistLinkTypes; // and for these link types
core::EnumSet<TrackArtistLinkType> excludedTrackArtistLinkTypes; // but not for these link types
std::string releaseType; // If set, albums that has this release type
MediaLibraryId mediaLibrary; // If set, releases that has at least a track in this library
LabelId label; // If set, releases that has this label
DirectoryId directory; // if set, releases in this directory (cannot be set with parent directory)
DirectoryId parentDirectory; // if set, releases in this parent directory (cannot be set with directory)
FindParameters& setClusters(std::span<const ClusterId> _clusters)
FindParameters& setFilters(const Filters& _filters)
{
clusters.assign(std::cbegin(_clusters), std::cend(_clusters));
filters = _filters;
return *this;
}
FindParameters& setKeywords(const std::vector<std::string_view>& _keywords)
@@ -224,16 +221,6 @@ namespace lms::db
releaseType = _releaseType;
return *this;
}
FindParameters& setMediaLibrary(MediaLibraryId _mediaLibrary)
{
mediaLibrary = _mediaLibrary;
return *this;
}
FindParameters& setLabel(LabelId _label)
{
label = _label;
return *this;
}
FindParameters& setDirectory(DirectoryId _directory)
{
directory = _directory;
+4 -17
View File
@@ -23,7 +23,6 @@
#include <filesystem>
#include <optional>
#include <ostream>
#include <span>
#include <string>
#include <string_view>
#include <vector>
@@ -38,7 +37,7 @@
#include "database/ArtistId.hpp"
#include "database/ClusterId.hpp"
#include "database/DirectoryId.hpp"
#include "database/LabelId.hpp"
#include "database/Filters.hpp"
#include "database/MediaLibraryId.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
@@ -66,7 +65,7 @@ namespace lms::db
public:
struct FindParameters
{
std::vector<ClusterId> clusters; // if non empty, tracks that belong to these clusters
Filters filters;
std::vector<std::string_view> keywords; // if non empty, name must match all of these keywords
std::string name; // if non empty, must match this name (title)
std::string fileStem; // if non empty, must match this file stem
@@ -85,14 +84,12 @@ namespace lms::db
TrackListId trackList; // matching this trackList
std::optional<int> trackNumber; // matching this track number
std::optional<int> discNumber; // matching this disc number
MediaLibraryId mediaLibrary; // If set, tracks in this library
LabelId label; // If set, tracks that belongs to a release with this label
DirectoryId directory; // if set, tracks in this directory
std::optional<bool> hasEmbeddedImage; // if set, tracks that have or not embedded images
FindParameters& setClusters(std::span<const ClusterId> _clusters)
FindParameters& setFilters(const Filters& _filters)
{
clusters.assign(std::cbegin(_clusters), std::cend(_clusters));
filters = _filters;
return *this;
}
FindParameters& setKeywords(const std::vector<std::string_view>& _keywords)
@@ -179,16 +176,6 @@ namespace lms::db
discNumber = _discNumber;
return *this;
}
FindParameters& setMediaLibrary(MediaLibraryId _mediaLibrary)
{
mediaLibrary = _mediaLibrary;
return *this;
}
FindParameters& setLabel(LabelId _label)
{
label = _label;
return *this;
}
FindParameters& setDirectory(DirectoryId _directory)
{
directory = _directory;
@@ -20,7 +20,6 @@
#pragma once
#include <optional>
#include <span>
#include <string>
#include <string_view>
#include <vector>
@@ -28,8 +27,7 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/WDateTime.h>
#include "database/ClusterId.hpp"
#include "database/MediaLibraryId.hpp"
#include "database/Filters.hpp"
#include "database/Object.hpp"
#include "database/TrackId.hpp"
#include "database/TrackListId.hpp"
@@ -62,19 +60,18 @@ namespace lms::db
// Search utility
struct FindParameters
{
std::vector<ClusterId> clusters; // if non empty, tracklists that have tracks that belong to these clusters
Filters filters;
std::vector<std::string_view> keywords; // if non empty, name must match all of these keywords (on either name field OR sort name field)
std::optional<Range> range;
std::optional<TrackListType> type;
UserId user; // only tracklists owned by this user
UserId excludedUser; // only tracklists *not* owned by this user
MediaLibraryId mediaLibrary; // only tracklists that have songs in this media library
UserId user; // only tracklists owned by this user
UserId excludedUser; // only tracklists *not* owned by this user
TrackListSortMethod sortMethod{ TrackListSortMethod::None };
std::optional<Visibility> visibility;
FindParameters& setClusters(std::span<const ClusterId> _clusters)
FindParameters& setFilters(const Filters& _filters)
{
clusters.assign(std::cbegin(_clusters), std::cend(_clusters));
filters = _filters;
return *this;
}
FindParameters& setKeywords(const std::vector<std::string_view>& _keywords)
@@ -103,11 +100,6 @@ namespace lms::db
return *this;
}
FindParameters& setMediaLibrary(MediaLibraryId _mediaLibrary)
{
mediaLibrary = _mediaLibrary;
return *this;
}
FindParameters& setSortMethod(TrackListSortMethod _sortMethod)
{
sortMethod = _sortMethod;
+2 -2
View File
@@ -324,13 +324,13 @@ namespace lms::db::tests
}
{
auto transaction{ session.createReadTransaction() };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setMediaLibrary(library->getId())) };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setMediaLibrary(library->getId()))) };
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results.front(), artist.getId());
}
{
auto transaction{ session.createReadTransaction() };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setMediaLibrary(otherLibrary->getId())) };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setMediaLibrary(otherLibrary->getId()))) };
EXPECT_EQ(artists.results.size(), 0);
}
}
+20 -20
View File
@@ -201,11 +201,11 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
auto tracks{ Track::findIds(session, Track::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId() })) };
auto tracks{ Track::findIds(session, Track::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId() }))) };
ASSERT_EQ(tracks.results.size(), 1);
EXPECT_EQ(tracks.results.front(), track.getId());
tracks = Track::findIds(session, Track::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster2.getId() }));
tracks = Track::findIds(session, Track::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster2.getId() })));
EXPECT_EQ(tracks.results.size(), 0);
}
@@ -235,7 +235,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setClusters(clusterIds)) };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setFilters(Filters{}.setClusters(clusterIds))) };
EXPECT_EQ(tracks.results.size(), 0);
}
@@ -248,7 +248,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setClusters(clusterIds)) };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setFilters(Filters{}.setClusters(clusterIds))) };
EXPECT_EQ(tracks.results.size(), 0);
EXPECT_EQ(Cluster::computeTrackCount(session, cluster1.getId()), 1);
EXPECT_EQ(Cluster::computeTrackCount(session, cluster2.getId()), 0);
@@ -263,7 +263,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setClusters(clusterIds)) };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setFilters(Filters{}.setClusters(clusterIds))) };
ASSERT_EQ(tracks.results.size(), 1);
EXPECT_EQ(tracks.results.front(), track.getId());
EXPECT_EQ(Cluster::computeTrackCount(session, cluster1.getId()), 1);
@@ -376,7 +376,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
ASSERT_EQ(Cluster::findOrphanIds(session).results.size(), 2);
EXPECT_EQ(Release::find(session, Release::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ unusedCluster.getId() })).results.size(), 0);
EXPECT_EQ(Release::find(session, Release::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ unusedCluster.getId() }))).results.size(), 0);
EXPECT_EQ(Release::find(session, Release::FindParameters{}).results.size(), 1);
EXPECT_EQ(Cluster::computeReleaseCount(session, cluster.getId()), 0);
EXPECT_EQ(Cluster::computeReleaseCount(session, unusedCluster.getId()), 0);
@@ -412,7 +412,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
const auto releases{ Release::findIds(session, Release::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() })) };
const auto releases{ Release::findIds(session, Release::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() }))) };
ASSERT_EQ(releases.results.size(), 1);
EXPECT_EQ(releases.results.front(), release.getId());
}
@@ -420,7 +420,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
const auto releases{ Release::findIds(session, Release::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ unusedCluster.getId() })) };
const auto releases{ Release::findIds(session, Release::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ unusedCluster.getId() }))) };
EXPECT_EQ(releases.results.size(), 0);
}
@@ -466,12 +466,12 @@ namespace lms::db::tests
{
auto transaction{ session.createWriteTransaction() };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId() })) };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId() }))) };
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results.front(), artist.getId());
EXPECT_EQ(Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster2.getId() })).results.size(), 0);
EXPECT_EQ(Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster3.getId() })).results.size(), 0);
EXPECT_EQ(Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster2.getId() }))).results.size(), 0);
EXPECT_EQ(Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster3.getId() }))).results.size(), 0);
cluster2.get().modify()->addTrack(track.get());
}
@@ -479,19 +479,19 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId() })) };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId() }))) };
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results.front(), artist.getId());
artists = Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster2.getId() }));
artists = Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster2.getId() })));
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results.front(), artist.getId());
artists = Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId() }));
artists = Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId() })));
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results.front(), artist.getId());
EXPECT_EQ(Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster3.getId() })).results.size(), 0);
EXPECT_EQ(Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster3.getId() }))).results.size(), 0);
}
}
@@ -520,7 +520,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() })) };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() }))) };
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results.front(), artist.getId());
}
@@ -562,7 +562,7 @@ namespace lms::db::tests
std::vector<ClusterId> clusterIds;
std::transform(std::cbegin(clusters), std::cend(clusters), std::back_inserter(clusterIds), [](const ScopedCluster& cluster) { return cluster.getId(); });
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setClusters(clusterIds)) };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(clusterIds))) };
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results.front(), artist.getId());
}
@@ -671,7 +671,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() })) };
auto artists{ Artist::findIds(session, Artist::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() }))) };
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results.front(), artist.getId());
@@ -679,7 +679,7 @@ namespace lms::db::tests
ASSERT_EQ(releases.results.size(), 1);
EXPECT_EQ(releases.results.front(), release.getId());
releases = Release::findIds(session, Release::FindParameters{}.setArtist(artist.getId()).setClusters(std::initializer_list<ClusterId>{ cluster.getId() }));
releases = Release::findIds(session, Release::FindParameters{}.setArtist(artist.getId()).setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() })));
ASSERT_EQ(releases.results.size(), 1);
EXPECT_EQ(releases.results.front(), release.getId());
}
@@ -710,7 +710,7 @@ namespace lms::db::tests
ASSERT_EQ(releases.results.size(), 1);
EXPECT_EQ(releases.results.front(), release.getId());
releases = Release::findIds(session, Release::FindParameters{}.setArtist(artist.getId()).setClusters(std::initializer_list<ClusterId>{ cluster1.getId(), cluster2.getId() }));
releases = Release::findIds(session, Release::FindParameters{}.setArtist(artist.getId()).setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster1.getId(), cluster2.getId() })));
ASSERT_EQ(releases.results.size(), 1);
EXPECT_EQ(releases.results.front(), release.getId());
}
+30 -30
View File
@@ -216,7 +216,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster->getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster->getId() });
auto artists{ Listen::getTopArtists(session, params) };
EXPECT_EQ(artists.results.size(), 0);
@@ -313,7 +313,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto artists{ Listen::getTopArtists(session, params) };
ASSERT_EQ(artists.results.size(), 0);
@@ -328,7 +328,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto artists{ Listen::getTopArtists(session, params) };
ASSERT_EQ(artists.results.size(), 1);
@@ -352,7 +352,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user.getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
const auto artists{ Listen::getTopArtists(session, params) };
EXPECT_EQ(artists.results.size(), 0);
@@ -383,7 +383,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user.getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
auto artists{ Listen::getTopArtists(session, params) };
ASSERT_EQ(artists.results.size(), 1);
@@ -395,7 +395,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user.getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(otherLibrary.getId());
params.filters.setMediaLibrary(otherLibrary.getId());
auto artists{ Listen::getTopArtists(session, params) };
EXPECT_EQ(artists.results.size(), 0);
@@ -533,7 +533,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto releases{ Listen::getTopReleases(session, params) };
EXPECT_EQ(releases.results.size(), 0);
@@ -549,7 +549,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto releases{ Listen::getTopReleases(session, params) };
EXPECT_EQ(releases.results.size(), 1);
@@ -578,7 +578,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
auto releases{ Listen::getTopReleases(session, params) };
EXPECT_EQ(releases.moreResults, false);
@@ -593,7 +593,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
auto releases{ Listen::getTopReleases(session, params) };
EXPECT_EQ(releases.moreResults, false);
@@ -606,7 +606,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(otherLibrary.getId());
params.filters.setMediaLibrary(otherLibrary.getId());
auto releases{ Listen::getTopReleases(session, params) };
EXPECT_EQ(releases.moreResults, false);
@@ -780,7 +780,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto tracks{ Listen::getTopTracks(session, params) };
EXPECT_EQ(tracks.results.size(), 0);
@@ -796,7 +796,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto tracks{ Listen::getTopTracks(session, params) };
EXPECT_EQ(tracks.results.size(), 1);
@@ -818,7 +818,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user.getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
auto tracks{ Listen::getTopTracks(session, params) };
EXPECT_EQ(tracks.moreResults, false);
@@ -838,7 +838,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
auto tracks{ Listen::getTopTracks(session, params) };
EXPECT_EQ(tracks.moreResults, false);
@@ -851,7 +851,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setMediaLibrary(otherLibrary.getId());
params.filters.setMediaLibrary(otherLibrary.getId());
auto tracks{ Listen::getTopTracks(session, params) };
EXPECT_EQ(tracks.moreResults, false);
@@ -927,7 +927,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster->getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster->getId() });
auto artists{ Listen::getRecentArtists(session, params) };
EXPECT_EQ(artists.results.size(), 0);
@@ -1023,7 +1023,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto artists{ Listen::getRecentArtists(session, params) };
ASSERT_EQ(artists.results.size(), 0);
@@ -1038,7 +1038,7 @@ namespace lms::db::tests
Listen::ArtistStatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto artists{ Listen::getRecentArtists(session, params) };
ASSERT_EQ(artists.results.size(), 1);
@@ -1067,7 +1067,7 @@ namespace lms::db::tests
auto transaction{ session.createReadTransaction() };
Listen::ArtistStatsFindParameters params;
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
auto artists{ Listen::getRecentArtists(session, params) };
ASSERT_EQ(artists.results.size(), 1);
@@ -1077,7 +1077,7 @@ namespace lms::db::tests
auto transaction{ session.createReadTransaction() };
Listen::ArtistStatsFindParameters params;
params.setMediaLibrary(otherLibrary.getId());
params.filters.setMediaLibrary(otherLibrary.getId());
auto artists{ Listen::getRecentArtists(session, params) };
EXPECT_EQ(artists.results.size(), 0);
@@ -1281,7 +1281,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto releases{ Listen::getRecentReleases(session, params) };
EXPECT_EQ(releases.results.size(), 0);
@@ -1296,7 +1296,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto releases{ Listen::getRecentReleases(session, params) };
EXPECT_EQ(releases.results.size(), 0);
@@ -1312,7 +1312,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto releases{ Listen::getRecentReleases(session, params) };
EXPECT_EQ(releases.results.size(), 1);
@@ -1341,7 +1341,7 @@ namespace lms::db::tests
auto transaction{ session.createReadTransaction() };
Listen::StatsFindParameters params;
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
auto releases{ Listen::getRecentReleases(session, params) };
EXPECT_EQ(releases.moreResults, false);
@@ -1352,7 +1352,7 @@ namespace lms::db::tests
auto transaction{ session.createReadTransaction() };
Listen::StatsFindParameters params;
params.setMediaLibrary(otherLibrary.getId());
params.filters.setMediaLibrary(otherLibrary.getId());
auto releases{ Listen::getRecentReleases(session, params) };
EXPECT_EQ(releases.moreResults, false);
@@ -1425,7 +1425,7 @@ namespace lms::db::tests
auto transaction{ session.createReadTransaction() };
Listen::StatsFindParameters params;
params.setMediaLibrary(library.getId());
params.filters.setMediaLibrary(library.getId());
auto tracks{ Listen::getRecentTracks(session, params) };
EXPECT_EQ(tracks.moreResults, false);
@@ -1437,7 +1437,7 @@ namespace lms::db::tests
auto transaction{ session.createReadTransaction() };
Listen::StatsFindParameters params;
params.setMediaLibrary(otherLibrary.getId());
params.filters.setMediaLibrary(otherLibrary.getId());
auto tracks{ Listen::getRecentTracks(session, params) };
EXPECT_EQ(tracks.moreResults, false);
@@ -1655,7 +1655,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto tracks{ Listen::getRecentTracks(session, params) };
EXPECT_EQ(tracks.results.size(), 0);
@@ -1671,7 +1671,7 @@ namespace lms::db::tests
Listen::StatsFindParameters params;
params.setUser(user->getId());
params.setScrobblingBackend(ScrobblingBackend::Internal);
params.setClusters({ cluster.getId() });
params.filters.setClusters(std::initializer_list<ClusterId>{ cluster.getId() });
auto tracks{ Listen::getRecentTracks(session, params) };
EXPECT_EQ(tracks.results.size(), 1);
+2 -2
View File
@@ -246,13 +246,13 @@ namespace lms::db::tests
}
{
auto transaction{ session.createReadTransaction() };
auto releases{ Release::findIds(session, Release::FindParameters{}.setMediaLibrary(library->getId())) };
auto releases{ Release::findIds(session, Release::FindParameters{}.setFilters(Filters{}.setMediaLibrary(library->getId()))) };
ASSERT_EQ(releases.results.size(), 1);
EXPECT_EQ(releases.results.front(), release.getId());
}
{
auto transaction{ session.createReadTransaction() };
auto releases{ Release::findIds(session, Release::FindParameters{}.setMediaLibrary(otherLibrary->getId())) };
auto releases{ Release::findIds(session, Release::FindParameters{}.setFilters(Filters{}.setMediaLibrary(otherLibrary->getId()))) };
EXPECT_EQ(releases.results.size(), 0);
}
}
+2 -2
View File
@@ -170,13 +170,13 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setMediaLibrary(library->getId())) };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setFilters(Filters{}.setMediaLibrary(library->getId()))) };
ASSERT_EQ(tracks.results.size(), 1);
EXPECT_EQ(tracks.results.front(), track.getId());
}
{
auto transaction{ session.createReadTransaction() };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setMediaLibrary(otherLibrary->getId())) };
const auto tracks{ Track::findIds(session, Track::FindParameters{}.setFilters(Filters{}.setMediaLibrary(otherLibrary->getId()))) };
EXPECT_EQ(tracks.results.size(), 0);
}
}
+3 -3
View File
@@ -176,7 +176,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
std::vector<TrackListId> visitedTrackLists;
TrackList::find(session, TrackList::FindParameters{}.setMediaLibrary(library->getId()), [&](const TrackList::pointer& trackList) {
TrackList::find(session, TrackList::FindParameters{}.setFilters(Filters{}.setMediaLibrary(library->getId())), [&](const TrackList::pointer& trackList) {
visitedTrackLists.push_back(trackList->getId());
});
ASSERT_EQ(visitedTrackLists.size(), 1);
@@ -195,7 +195,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
auto trackLists{ TrackList::find(session, TrackList::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() })) };
auto trackLists{ TrackList::find(session, TrackList::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() }))) };
EXPECT_EQ(trackLists.results.size(), 0);
}
@@ -209,7 +209,7 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
auto trackLists{ TrackList::find(session, TrackList::FindParameters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() })) };
auto trackLists{ TrackList::find(session, TrackList::FindParameters{}.setFilters(Filters{}.setClusters(std::initializer_list<ClusterId>{ cluster.getId() }))) };
ASSERT_EQ(trackLists.results.size(), 1);
EXPECT_EQ(trackLists.results.front(), trackList1.getId());
}