Centralized some db filters
This commit is contained in:
@@ -97,14 +97,12 @@ namespace lms::feedback
|
||||
return {};
|
||||
|
||||
Artist::FindParameters searchParams;
|
||||
searchParams.setFilters(params.filters);
|
||||
searchParams.setStarringUser(params.user, *backend);
|
||||
searchParams.setClusters(params.clusters);
|
||||
searchParams.setKeywords(params.keywords);
|
||||
searchParams.setLinkType(params.linkType);
|
||||
searchParams.setSortMethod(params.sortMethod);
|
||||
searchParams.setRange(params.range);
|
||||
searchParams.setMediaLibrary(params.library);
|
||||
searchParams.setLabel(params.label);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
@@ -150,12 +148,10 @@ namespace lms::feedback
|
||||
|
||||
Release::FindParameters searchParams;
|
||||
searchParams.setStarringUser(params.user, *backend);
|
||||
searchParams.setClusters(params.clusters);
|
||||
searchParams.setFilters(params.filters);
|
||||
searchParams.setKeywords(params.keywords);
|
||||
searchParams.setSortMethod(ReleaseSortMethod::StarredDateDesc);
|
||||
searchParams.setRange(params.range);
|
||||
searchParams.setMediaLibrary(params.library);
|
||||
searchParams.setLabel(params.label);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
@@ -201,12 +197,10 @@ namespace lms::feedback
|
||||
|
||||
Track::FindParameters searchParams;
|
||||
searchParams.setStarringUser(params.user, *backend);
|
||||
searchParams.setClusters(params.clusters);
|
||||
searchParams.setFilters(params.filters);
|
||||
searchParams.setKeywords(params.keywords);
|
||||
searchParams.setSortMethod(TrackSortMethod::StarredDateDesc);
|
||||
searchParams.setRange(params.range);
|
||||
searchParams.setMediaLibrary(params.library);
|
||||
searchParams.setLabel(params.label);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
@@ -27,9 +27,7 @@
|
||||
#include <boost/asio/io_service.hpp>
|
||||
|
||||
#include "database/ArtistId.hpp"
|
||||
#include "database/ClusterId.hpp"
|
||||
#include "database/LabelId.hpp"
|
||||
#include "database/MediaLibraryId.hpp"
|
||||
#include "database/Filters.hpp"
|
||||
#include "database/ReleaseId.hpp"
|
||||
#include "database/TrackId.hpp"
|
||||
#include "database/Types.hpp"
|
||||
@@ -54,20 +52,18 @@ namespace lms::feedback
|
||||
struct FindParameters
|
||||
{
|
||||
db::UserId user;
|
||||
std::vector<db::ClusterId> clusters; // if non empty, at least one artist that belongs to these clusters
|
||||
db::Filters filters;
|
||||
std::vector<std::string_view> keywords; // if non empty, name must match all of these keywords
|
||||
std::optional<db::Range> range;
|
||||
db::MediaLibraryId library;
|
||||
db::LabelId label;
|
||||
|
||||
FindParameters& setUser(const db::UserId _user)
|
||||
{
|
||||
user = _user;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setClusters(std::span<const db::ClusterId> _clusters)
|
||||
FindParameters& setFilters(const db::Filters& _filters)
|
||||
{
|
||||
clusters.assign(std::cbegin(_clusters), std::cend(_clusters));
|
||||
filters = _filters;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setKeywords(const std::vector<std::string_view>& _keywords)
|
||||
@@ -80,16 +76,6 @@ namespace lms::feedback
|
||||
range = _range;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setMediaLibrary(db::MediaLibraryId _library)
|
||||
{
|
||||
library = _library;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setLabel(db::LabelId _label)
|
||||
{
|
||||
label = _label;
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
// Artists
|
||||
|
||||
@@ -41,11 +41,9 @@ namespace lms::scrobbling
|
||||
{
|
||||
db::Listen::StatsFindParameters listenFindParams;
|
||||
listenFindParams.setUser(params.user);
|
||||
listenFindParams.setClusters(params.clusters);
|
||||
listenFindParams.setFilters(params.filters);
|
||||
listenFindParams.setKeywords(params.keywords);
|
||||
listenFindParams.setRange(params.range);
|
||||
listenFindParams.setMediaLibrary(params.library);
|
||||
listenFindParams.setLabel(params.label);
|
||||
listenFindParams.setArtist(params.artist);
|
||||
|
||||
return listenFindParams;
|
||||
|
||||
@@ -28,9 +28,7 @@
|
||||
#include <boost/asio/io_service.hpp>
|
||||
|
||||
#include "database/ArtistId.hpp"
|
||||
#include "database/ClusterId.hpp"
|
||||
#include "database/LabelId.hpp"
|
||||
#include "database/MediaLibraryId.hpp"
|
||||
#include "database/Filters.hpp"
|
||||
#include "database/ReleaseId.hpp"
|
||||
#include "database/TrackId.hpp"
|
||||
#include "database/Types.hpp"
|
||||
@@ -62,21 +60,19 @@ namespace lms::scrobbling
|
||||
struct FindParameters
|
||||
{
|
||||
db::UserId user;
|
||||
std::vector<db::ClusterId> clusters; // if non empty, at least one artist that belongs to these clusters
|
||||
db::Filters filters;
|
||||
std::vector<std::string_view> keywords; // if non empty, name must match all of these keywords
|
||||
std::optional<db::Range> range;
|
||||
db::MediaLibraryId library; // if set, match this library
|
||||
db::LabelId label; // if set, match this label
|
||||
db::ArtistId artist; // if set, match this artist
|
||||
db::ArtistId artist; // if set, match this artist
|
||||
|
||||
FindParameters& setUser(const db::UserId _user)
|
||||
{
|
||||
user = _user;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setClusters(std::span<const db::ClusterId> _clusters)
|
||||
FindParameters& setFilters(const db::Filters& _filters)
|
||||
{
|
||||
clusters.assign(std::cbegin(_clusters), std::cend(_clusters));
|
||||
filters = _filters;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setKeywords(const std::vector<std::string_view>& _keywords)
|
||||
@@ -89,16 +85,6 @@ namespace lms::scrobbling
|
||||
range = _range;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setMediaLibrary(db::MediaLibraryId _library)
|
||||
{
|
||||
library = _library;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setLabel(db::LabelId _label)
|
||||
{
|
||||
label = _label;
|
||||
return *this;
|
||||
}
|
||||
FindParameters& setArtist(db::ArtistId _artist)
|
||||
{
|
||||
artist = _artist;
|
||||
|
||||
Reference in New Issue
Block a user