Rework db range primitives + fixed bug when playing all in releases/tracks views + raised limit to 1000 for ranges in subsonic API
This commit is contained in:
@@ -87,23 +87,23 @@ namespace Feedback
|
||||
return getStarredDateTime<Artist, ArtistId, StarredArtist>(userId, artistId);
|
||||
}
|
||||
|
||||
FeedbackService::ArtistContainer FeedbackService::getStarredArtists(UserId userId, const std::vector<ClusterId>& clusterIds, std::optional<TrackArtistLinkType> linkType, ArtistSortMethod sortMethod, Range range)
|
||||
FeedbackService::ArtistContainer FeedbackService::findStarredArtists(const ArtistFindParameters& params)
|
||||
{
|
||||
auto backend{ getUserFeedbackBackend(userId) };
|
||||
auto backend{ getUserFeedbackBackend(params.user) };
|
||||
if (!backend)
|
||||
return {};
|
||||
|
||||
Artist::FindParameters params;
|
||||
params.setStarringUser(userId, *backend);
|
||||
params.setClusters(clusterIds);
|
||||
params.setLinkType(linkType);
|
||||
params.setSortMethod(sortMethod);
|
||||
params.setRange(range);
|
||||
Artist::FindParameters searchParams;
|
||||
searchParams.setStarringUser(params.user, *backend);
|
||||
searchParams.setClusters(params.clusters);
|
||||
searchParams.setLinkType(params.linkType);
|
||||
searchParams.setSortMethod(params.sortMethod);
|
||||
searchParams.setRange(params.range);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
|
||||
return Artist::findIds(session, params);
|
||||
return Artist::findIds(session, searchParams);
|
||||
}
|
||||
|
||||
void FeedbackService::star(UserId userId, ReleaseId releaseId)
|
||||
@@ -126,22 +126,22 @@ namespace Feedback
|
||||
return getStarredDateTime<Release, ReleaseId, StarredRelease>(userId, releaseId);
|
||||
}
|
||||
|
||||
FeedbackService::ReleaseContainer FeedbackService::getStarredReleases(UserId userId, const std::vector<ClusterId>& clusterIds, Range range)
|
||||
FeedbackService::ReleaseContainer FeedbackService::findStarredReleases(const FindParameters& params)
|
||||
{
|
||||
auto backend{ getUserFeedbackBackend(userId) };
|
||||
auto backend{ getUserFeedbackBackend(params.user) };
|
||||
if (!backend)
|
||||
return {};
|
||||
|
||||
Release::FindParameters params;
|
||||
params.setStarringUser(userId, *backend);
|
||||
params.setClusters(clusterIds);
|
||||
params.setSortMethod(ReleaseSortMethod::StarredDateDesc);
|
||||
params.setRange(range);
|
||||
Release::FindParameters searchParams;
|
||||
searchParams.setStarringUser(params.user, *backend);
|
||||
searchParams.setClusters(params.clusters);
|
||||
searchParams.setSortMethod(ReleaseSortMethod::StarredDateDesc);
|
||||
searchParams.setRange(params.range);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
|
||||
return Release::findIds(session, params);
|
||||
return Release::findIds(session, searchParams);
|
||||
}
|
||||
|
||||
void FeedbackService::star(UserId userId, TrackId trackId)
|
||||
@@ -164,22 +164,22 @@ namespace Feedback
|
||||
return getStarredDateTime<Track, TrackId, StarredTrack>(userId, trackId);
|
||||
}
|
||||
|
||||
FeedbackService::TrackContainer FeedbackService::getStarredTracks(UserId userId, const std::vector<ClusterId>& clusterIds, Range range)
|
||||
FeedbackService::TrackContainer FeedbackService::findStarredTracks(const FindParameters& params)
|
||||
{
|
||||
auto backend{ getUserFeedbackBackend(userId) };
|
||||
auto backend{ getUserFeedbackBackend(params.user) };
|
||||
if (!backend)
|
||||
return {};
|
||||
|
||||
Track::FindParameters params;
|
||||
params.setStarringUser(userId, *backend);
|
||||
params.setClusters(clusterIds);
|
||||
params.setSortMethod(TrackSortMethod::StarredDateDesc);
|
||||
params.setRange(range);
|
||||
Track::FindParameters searchParams;
|
||||
searchParams.setStarringUser(params.user, *backend);
|
||||
searchParams.setClusters(params.clusters);
|
||||
searchParams.setSortMethod(TrackSortMethod::StarredDateDesc);
|
||||
searchParams.setRange(params.range);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
|
||||
return Track::findIds(session, params);
|
||||
return Track::findIds(session, searchParams);
|
||||
}
|
||||
} // ns Feedback
|
||||
|
||||
|
||||
@@ -46,19 +46,19 @@ namespace Feedback
|
||||
void unstar(Database::UserId userId, Database::ArtistId artistId) override;
|
||||
bool isStarred(Database::UserId userId, Database::ArtistId artistId) override;
|
||||
Wt::WDateTime getStarredDateTime(Database::UserId userId, Database::ArtistId artistId) override;
|
||||
ArtistContainer getStarredArtists(Database::UserId userId, const std::vector<Database::ClusterId>& clusterIds, std::optional<Database::TrackArtistLinkType> linkType, Database::ArtistSortMethod sortMethod, Database::Range range) override;
|
||||
ArtistContainer findStarredArtists(const ArtistFindParameters& params) override;
|
||||
|
||||
void star(Database::UserId userId, Database::ReleaseId releaseId) override;
|
||||
void unstar(Database::UserId userId, Database::ReleaseId releaseId) override;
|
||||
bool isStarred(Database::UserId userId, Database::ReleaseId releasedId) override;
|
||||
Wt::WDateTime getStarredDateTime(Database::UserId userId, Database::ReleaseId releasedId) override;
|
||||
ReleaseContainer getStarredReleases(Database::UserId userId, const std::vector<Database::ClusterId>& clusterIds, Database::Range range) override;
|
||||
ReleaseContainer findStarredReleases(const FindParameters& params) override;
|
||||
|
||||
void star(Database::UserId userId, Database::TrackId trackId) override;
|
||||
void unstar(Database::UserId userId, Database::TrackId trackId) override;
|
||||
bool isStarred(Database::UserId userId, Database::TrackId trackId) override;
|
||||
Wt::WDateTime getStarredDateTime(Database::UserId userId, Database::TrackId trackId) override;
|
||||
TrackContainer getStarredTracks(Database::UserId userId, const std::vector<Database::ClusterId>& clusterIds, Database::Range range) override;
|
||||
TrackContainer findStarredTracks(const FindParameters& params) override;
|
||||
|
||||
std::optional<Database::FeedbackBackend> getUserFeedbackBackend(Database::UserId userId);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user