Various minor cleanup

This commit is contained in:
emeric
2024-12-06 14:08:31 +01:00
parent 5ce99411e1
commit 06fd444d26
54 changed files with 113 additions and 144 deletions
@@ -37,12 +37,11 @@ namespace lms::feedback
{
public:
FeedbackService(boost::asio::io_context& ioContext, db::Db& db);
~FeedbackService();
private:
~FeedbackService() override;
FeedbackService(const FeedbackService&) = delete;
FeedbackService& operator=(const FeedbackService&) = delete;
private:
void star(db::UserId userId, db::ArtistId artistId) override;
void unstar(db::UserId userId, db::ArtistId artistId) override;
bool isStarred(db::UserId userId, db::ArtistId artistId) override;
@@ -54,8 +53,8 @@ namespace lms::feedback
void star(db::UserId userId, db::ReleaseId releaseId) override;
void unstar(db::UserId userId, db::ReleaseId releaseId) override;
bool isStarred(db::UserId userId, db::ReleaseId releasedId) override;
Wt::WDateTime getStarredDateTime(db::UserId userId, db::ReleaseId releasedId) override;
bool isStarred(db::UserId userId, db::ReleaseId releaseId) override;
Wt::WDateTime getStarredDateTime(db::UserId userId, db::ReleaseId releaseId) override;
ReleaseContainer findStarredReleases(const FindParameters& params) override;
void setRating(db::UserId userId, db::ReleaseId releaseId, std::optional<db::Rating> rating) override;
@@ -70,7 +69,6 @@ namespace lms::feedback
void setRating(db::UserId userId, db::TrackId trackId, std::optional<db::Rating> rating) override;
std::optional<db::Rating> getRating(db::UserId userId, db::TrackId trackId) override;
private:
std::optional<db::FeedbackBackend> getUserFeedbackBackend(db::UserId userId);
template<typename ObjType, typename ObjIdType, typename StarredObjType>
@@ -30,12 +30,12 @@ namespace lms::feedback
public:
virtual ~IFeedbackBackend() = default;
virtual void onStarred(db::StarredArtistId) = 0;
virtual void onUnstarred(db::StarredArtistId) = 0;
virtual void onStarred(db::StarredReleaseId) = 0;
virtual void onUnstarred(db::StarredReleaseId) = 0;
virtual void onStarred(db::StarredTrackId) = 0;
virtual void onUnstarred(db::StarredTrackId) = 0;
virtual void onStarred(db::StarredArtistId artistId) = 0;
virtual void onUnstarred(db::StarredArtistId artistId) = 0;
virtual void onStarred(db::StarredReleaseId releaseId) = 0;
virtual void onUnstarred(db::StarredReleaseId releaseId) = 0;
virtual void onStarred(db::StarredTrackId trackId) = 0;
virtual void onUnstarred(db::StarredTrackId trackId) = 0;
};
std::unique_ptr<IFeedbackBackend> createFeedbackBackend(std::string_view backendName);
@@ -53,33 +53,33 @@ namespace lms::feedback
{
}
void InternalBackend::onStarred(db::StarredArtistId starredArtistId)
void InternalBackend::onStarred(db::StarredArtistId artistId)
{
details::onStarred<db::StarredArtist>(_db.getTLSSession(), starredArtistId);
details::onStarred<db::StarredArtist>(_db.getTLSSession(), artistId);
}
void InternalBackend::onUnstarred(db::StarredArtistId starredArtistId)
void InternalBackend::onUnstarred(db::StarredArtistId artistId)
{
details::onUnstarred<db::StarredArtist>(_db.getTLSSession(), starredArtistId);
details::onUnstarred<db::StarredArtist>(_db.getTLSSession(), artistId);
}
void InternalBackend::onStarred(db::StarredReleaseId starredReleaseId)
void InternalBackend::onStarred(db::StarredReleaseId releaseId)
{
details::onStarred<db::StarredRelease>(_db.getTLSSession(), starredReleaseId);
details::onStarred<db::StarredRelease>(_db.getTLSSession(), releaseId);
}
void InternalBackend::onUnstarred(db::StarredReleaseId starredReleaseId)
void InternalBackend::onUnstarred(db::StarredReleaseId releaseId)
{
details::onUnstarred<db::StarredRelease>(_db.getTLSSession(), starredReleaseId);
details::onUnstarred<db::StarredRelease>(_db.getTLSSession(), releaseId);
}
void InternalBackend::onStarred(db::StarredTrackId starredTrackId)
void InternalBackend::onStarred(db::StarredTrackId trackId)
{
details::onStarred<db::StarredTrack>(_db.getTLSSession(), starredTrackId);
details::onStarred<db::StarredTrack>(_db.getTLSSession(), trackId);
}
void InternalBackend::onUnstarred(db::StarredTrackId starredTrackId)
void InternalBackend::onUnstarred(db::StarredTrackId trackId)
{
details::onUnstarred<db::StarredTrack>(_db.getTLSSession(), starredTrackId);
details::onUnstarred<db::StarredTrack>(_db.getTLSSession(), trackId);
}
} // namespace lms::feedback
@@ -32,14 +32,17 @@ namespace lms::feedback
{
public:
InternalBackend(db::Db& db);
~InternalBackend() override = default;
InternalBackend(const InternalBackend&) = delete;
InternalBackend& operator=(const InternalBackend&) = delete;
private:
void onStarred(db::StarredArtistId) override;
void onUnstarred(db::StarredArtistId) override;
void onStarred(db::StarredReleaseId) override;
void onUnstarred(db::StarredReleaseId) override;
void onStarred(db::StarredTrackId) override;
void onUnstarred(db::StarredTrackId) override;
void onStarred(db::StarredArtistId artistId) override;
void onUnstarred(db::StarredArtistId artistId) override;
void onStarred(db::StarredReleaseId releaseId) override;
void onUnstarred(db::StarredReleaseId releaseId) override;
void onStarred(db::StarredTrackId trackId) override;
void onUnstarred(db::StarredTrackId trackId) override;
db::Db& _db;
};
@@ -19,6 +19,8 @@
#include "FeedbackTypes.hpp"
#include <ostream>
namespace lms::feedback::listenBrainz
{
std::ostream& operator<<(std::ostream& os, const Feedback& feedback)
@@ -19,7 +19,7 @@
#pragma once
#include <ostream>
#include <iosfwd>
#include <Wt/WDateTime.h>
@@ -38,9 +38,9 @@ namespace lms::feedback::listenBrainz
throw Exception{ "MBID not found!" };
return Feedback{
Wt::WDateTime::fromTime_t(static_cast<int>(feedbackObj.get("created"))),
*recordingMBID,
static_cast<FeedbackType>(static_cast<int>(feedbackObj.get("score")))
.created = Wt::WDateTime::fromTime_t(static_cast<int>(feedbackObj.get("created"))),
.recordingMBID = *recordingMBID,
.score = static_cast<FeedbackType>(static_cast<int>(feedbackObj.get("score")))
};
}
} // namespace
@@ -251,10 +251,9 @@ namespace lms::feedback::listenBrainz
LOG(DEBUG, "getFeedbacks aborted");
return;
}
else if (ec)
{
if (ec)
throw Exception{ "GetFeedbacks timer failure: " + std::string{ ec.message() } };
}
startSync();
}));
@@ -430,7 +429,8 @@ namespace lms::feedback::listenBrainz
LOG(DEBUG, "Too many matches for feedback '" << feedback << "': duplicate recording MBIDs found");
return;
}
else if (tracks.empty())
if (tracks.empty())
{
LOG(DEBUG, "Cannot match feedback '" << feedback << "': no track found for this recording MBID");
return;
@@ -27,7 +27,6 @@
#include <boost/asio/steady_timer.hpp>
#include "database/StarredTrackId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
#include "FeedbackTypes.hpp"
@@ -50,12 +49,14 @@ namespace lms::feedback::listenBrainz
{
public:
FeedbacksSynchronizer(boost::asio::io_context& ioContext, db::Db& db, core::http::IClient& client);
~FeedbacksSynchronizer() = default;
FeedbacksSynchronizer(const FeedbacksSynchronizer&) = delete;
FeedbacksSynchronizer& operator=(const FeedbacksSynchronizer&) = delete;
void enqueFeedback(FeedbackType type, db::StarredTrackId starredTrackId);
private:
void onFeedbackSent(FeedbackType type, db::StarredTrackId starredTrackId);
void enquePendingFeedbacks();
struct UserContext
@@ -63,12 +64,13 @@ namespace lms::feedback::listenBrainz
UserContext(db::UserId id)
: userId{ id } {}
~UserContext() = default;
UserContext(const UserContext&) = delete;
UserContext& operator=(const UserContext&) = delete;
const db::UserId userId;
bool syncing{};
std::optional<std::size_t> feedbackCount{};
std::optional<std::size_t> feedbackCount;
// resetted at each sync
std::string listenBrainzUserName; // need to be resolved first
@@ -20,7 +20,6 @@
#include "ListenBrainzBackend.hpp"
#include "core/IConfig.hpp"
#include "core/ILogger.hpp"
#include "core/Service.hpp"
#include "core/http/IClient.hpp"
#include "database/Db.hpp"
@@ -133,6 +133,6 @@ namespace lms::feedback
virtual std::optional<db::Rating> getRating(db::UserId userId, db::TrackId trackId) = 0;
};
std::unique_ptr<IFeedbackService> createFeedbackService(boost::asio::io_service& ioService, db::Db& db);
std::unique_ptr<IFeedbackService> createFeedbackService(boost::asio::io_service& ioContext, db::Db& db);
} // namespace lms::feedback