Created an interface for the Db class
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
|
||||
#include "core/ILogger.hpp"
|
||||
#include "database/Artist.hpp"
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/RatedArtist.hpp"
|
||||
#include "database/RatedRelease.hpp"
|
||||
#include "database/RatedTrack.hpp"
|
||||
@@ -39,12 +39,12 @@
|
||||
|
||||
namespace lms::feedback
|
||||
{
|
||||
std::unique_ptr<IFeedbackService> createFeedbackService(boost::asio::io_context& ioContext, Db& db)
|
||||
std::unique_ptr<IFeedbackService> createFeedbackService(boost::asio::io_context& ioContext, db::IDb& db)
|
||||
{
|
||||
return std::make_unique<FeedbackService>(ioContext, db);
|
||||
}
|
||||
|
||||
FeedbackService::FeedbackService(boost::asio::io_context& ioContext, Db& db)
|
||||
FeedbackService::FeedbackService(boost::asio::io_context& ioContext, db::IDb& db)
|
||||
: _db{ db }
|
||||
{
|
||||
LMS_LOG(SCROBBLING, INFO, "Starting service...");
|
||||
@@ -58,7 +58,7 @@ namespace lms::feedback
|
||||
LMS_LOG(SCROBBLING, INFO, "Service stopped!");
|
||||
}
|
||||
|
||||
std::optional<db::FeedbackBackend> FeedbackService::getUserFeedbackBackend(UserId userId)
|
||||
std::optional<db::FeedbackBackend> FeedbackService::getUserFeedbackBackend(db::UserId userId)
|
||||
{
|
||||
std::optional<db::FeedbackBackend> feedbackBackend;
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::feedback
|
||||
@@ -36,7 +36,7 @@ namespace lms::feedback
|
||||
class FeedbackService : public IFeedbackService
|
||||
{
|
||||
public:
|
||||
FeedbackService(boost::asio::io_context& ioContext, db::Db& db);
|
||||
FeedbackService(boost::asio::io_context& ioContext, db::IDb& db);
|
||||
~FeedbackService() override;
|
||||
FeedbackService(const FeedbackService&) = delete;
|
||||
FeedbackService& operator=(const FeedbackService&) = delete;
|
||||
@@ -86,7 +86,7 @@ namespace lms::feedback
|
||||
template<typename ObjType, typename ObjIdType, typename RatedObjType>
|
||||
std::optional<db::Rating> getRating(db::UserId userId, ObjIdType objectId);
|
||||
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
std::unordered_map<db::FeedbackBackend, std::unique_ptr<IFeedbackBackend>> _backends;
|
||||
};
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/User.hpp"
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#include "InternalBackend.hpp"
|
||||
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/StarredArtist.hpp"
|
||||
#include "database/StarredRelease.hpp"
|
||||
@@ -48,7 +48,7 @@ namespace lms::feedback
|
||||
}
|
||||
} // namespace details
|
||||
|
||||
InternalBackend::InternalBackend(db::Db& db)
|
||||
InternalBackend::InternalBackend(db::IDb& db)
|
||||
: _db{ db }
|
||||
{
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::feedback
|
||||
@@ -31,7 +31,7 @@ namespace lms::feedback
|
||||
class InternalBackend final : public IFeedbackBackend
|
||||
{
|
||||
public:
|
||||
InternalBackend(db::Db& db);
|
||||
InternalBackend(db::IDb& db);
|
||||
~InternalBackend() override = default;
|
||||
InternalBackend(const InternalBackend&) = delete;
|
||||
InternalBackend& operator=(const InternalBackend&) = delete;
|
||||
@@ -44,6 +44,6 @@ namespace lms::feedback
|
||||
void onStarred(db::StarredTrackId trackId) override;
|
||||
void onUnstarred(db::StarredTrackId trackId) override;
|
||||
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
};
|
||||
} // namespace lms::feedback
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "core/IConfig.hpp"
|
||||
#include "core/Service.hpp"
|
||||
#include "core/http/IClient.hpp"
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/StarredTrack.hpp"
|
||||
#include "database/Track.hpp"
|
||||
@@ -60,7 +60,7 @@ namespace lms::feedback::listenBrainz
|
||||
}
|
||||
} // namespace
|
||||
|
||||
FeedbacksSynchronizer::FeedbacksSynchronizer(boost::asio::io_context& ioContext, db::Db& db, core::http::IClient& client)
|
||||
FeedbacksSynchronizer::FeedbacksSynchronizer(boost::asio::io_context& ioContext, db::IDb& db, core::http::IClient& client)
|
||||
: _ioContext{ ioContext }
|
||||
, _db{ db }
|
||||
, _client{ client }
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace lms
|
||||
}
|
||||
namespace db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
} // namespace lms
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace lms::feedback::listenBrainz
|
||||
class FeedbacksSynchronizer
|
||||
{
|
||||
public:
|
||||
FeedbacksSynchronizer(boost::asio::io_context& ioContext, db::Db& db, core::http::IClient& client);
|
||||
FeedbacksSynchronizer(boost::asio::io_context& ioContext, db::IDb& db, core::http::IClient& client);
|
||||
~FeedbacksSynchronizer() = default;
|
||||
FeedbacksSynchronizer(const FeedbacksSynchronizer&) = delete;
|
||||
FeedbacksSynchronizer& operator=(const FeedbacksSynchronizer&) = delete;
|
||||
@@ -95,7 +95,7 @@ namespace lms::feedback::listenBrainz
|
||||
|
||||
boost::asio::io_context& _ioContext;
|
||||
boost::asio::io_context::strand _strand{ _ioContext };
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
boost::asio::steady_timer _syncTimer{ _ioContext };
|
||||
core::http::IClient& _client;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "core/IConfig.hpp"
|
||||
#include "core/Service.hpp"
|
||||
#include "core/http/IClient.hpp"
|
||||
#include "database/Db.hpp"
|
||||
#include "database/IDb.hpp"
|
||||
#include "database/Session.hpp"
|
||||
#include "database/StarredArtist.hpp"
|
||||
#include "database/StarredRelease.hpp"
|
||||
@@ -56,7 +56,7 @@ namespace lms::feedback::listenBrainz
|
||||
}
|
||||
} // namespace details
|
||||
|
||||
ListenBrainzBackend::ListenBrainzBackend(boost::asio::io_context& ioContext, db::Db& db)
|
||||
ListenBrainzBackend::ListenBrainzBackend(boost::asio::io_context& ioContext, db::IDb& db)
|
||||
: _ioContext{ ioContext }
|
||||
, _db{ db }
|
||||
, _baseAPIUrl{ core::Service<core::IConfig>::get()->getString("listenbrainz-api-base-url", "https://api.listenbrainz.org") }
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::feedback::listenBrainz
|
||||
@@ -36,7 +36,7 @@ namespace lms::feedback::listenBrainz
|
||||
class ListenBrainzBackend final : public IFeedbackBackend
|
||||
{
|
||||
public:
|
||||
ListenBrainzBackend(boost::asio::io_context& ioContext, db::Db& db);
|
||||
ListenBrainzBackend(boost::asio::io_context& ioContext, db::IDb& db);
|
||||
~ListenBrainzBackend() override;
|
||||
|
||||
private:
|
||||
@@ -51,7 +51,7 @@ namespace lms::feedback::listenBrainz
|
||||
void onUnstarred(db::StarredTrackId starredTrackId) override;
|
||||
|
||||
boost::asio::io_context& _ioContext;
|
||||
db::Db& _db;
|
||||
db::IDb& _db;
|
||||
std::string _baseAPIUrl;
|
||||
std::unique_ptr<core::http::IClient> _client;
|
||||
FeedbacksSynchronizer _feedbacksSynchronizer;
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
namespace lms::db
|
||||
{
|
||||
class Db;
|
||||
class IDb;
|
||||
}
|
||||
|
||||
namespace lms::feedback
|
||||
@@ -125,6 +125,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_context& ioContext, db::Db& db);
|
||||
std::unique_ptr<IFeedbackService> createFeedbackService(boost::asio::io_context& ioContext, db::IDb& db);
|
||||
|
||||
} // namespace lms::feedback
|
||||
|
||||
Reference in New Issue
Block a user