diff --git a/Dockerfile-release b/Dockerfile-release
index 918c5499..df4eaeee 100644
--- a/Dockerfile-release
+++ b/Dockerfile-release
@@ -78,7 +78,7 @@ RUN \
make distclean
# WT
-ARG WT_VERSION=4.10.0
+ARG WT_VERSION=4.10.2
RUN \
DIR=/tmp/wt && mkdir -p ${DIR} && cd ${DIR} && \
curl -sLO https://github.com/emweb/wt/archive/${WT_VERSION}.tar.gz && \
diff --git a/src/libs/CMakeLists.txt b/src/libs/CMakeLists.txt
index ca904a17..72f9ecf1 100644
--- a/src/libs/CMakeLists.txt
+++ b/src/libs/CMakeLists.txt
@@ -1,4 +1,5 @@
add_subdirectory(av)
+add_subdirectory(database)
add_subdirectory(image)
add_subdirectory(metadata)
add_subdirectory(services)
diff --git a/src/libs/services/database/CMakeLists.txt b/src/libs/database/CMakeLists.txt
similarity index 100%
rename from src/libs/services/database/CMakeLists.txt
rename to src/libs/database/CMakeLists.txt
diff --git a/src/libs/services/database/impl/Artist.cpp b/src/libs/database/impl/Artist.cpp
similarity index 98%
rename from src/libs/services/database/impl/Artist.cpp
rename to src/libs/database/impl/Artist.cpp
index 02b5052a..47d062a1 100644
--- a/src/libs/services/database/impl/Artist.cpp
+++ b/src/libs/database/impl/Artist.cpp
@@ -16,15 +16,15 @@
* You should have received a copy of the GNU General Public License
* along with LMS. If not, see .
*/
-#include "services/database/Artist.hpp"
+#include "database/Artist.hpp"
#include
-#include "services/database/Cluster.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Cluster.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "SqlQuery.hpp"
#include "Utils.hpp"
diff --git a/src/libs/services/database/impl/AuthToken.cpp b/src/libs/database/impl/AuthToken.cpp
similarity index 93%
rename from src/libs/services/database/impl/AuthToken.cpp
rename to src/libs/database/impl/AuthToken.cpp
index 7093a2b9..6632b843 100644
--- a/src/libs/services/database/impl/AuthToken.cpp
+++ b/src/libs/database/impl/AuthToken.cpp
@@ -17,11 +17,11 @@
* along with LMS. If not, see .
*/
-#include "services/database/AuthToken.hpp"
+#include "database/AuthToken.hpp"
#include
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "StringViewTraits.hpp"
#include "IdTypeTraits.hpp"
diff --git a/src/libs/services/database/impl/Cluster.cpp b/src/libs/database/impl/Cluster.cpp
similarity index 97%
rename from src/libs/services/database/impl/Cluster.cpp
rename to src/libs/database/impl/Cluster.cpp
index 843375ee..dceed659 100644
--- a/src/libs/services/database/impl/Cluster.cpp
+++ b/src/libs/database/impl/Cluster.cpp
@@ -17,13 +17,13 @@
* along with LMS. If not, see .
*/
-#include "services/database/Cluster.hpp"
+#include "database/Cluster.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/ScanSettings.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Artist.hpp"
+#include "database/Release.hpp"
+#include "database/ScanSettings.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "IdTypeTraits.hpp"
#include "SqlQuery.hpp"
#include "Utils.hpp"
diff --git a/src/libs/services/database/impl/Db.cpp b/src/libs/database/impl/Db.cpp
similarity index 97%
rename from src/libs/services/database/impl/Db.cpp
rename to src/libs/database/impl/Db.cpp
index 88a83c3f..1532965d 100644
--- a/src/libs/services/database/impl/Db.cpp
+++ b/src/libs/database/impl/Db.cpp
@@ -17,13 +17,13 @@
* along with LMS. If not, see .
*/
-#include "services/database/Db.hpp"
+#include "database/Db.hpp"
#include
#include
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/IConfig.hpp"
#include "utils/Service.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/database/impl/EnumSetTraits.hpp b/src/libs/database/impl/EnumSetTraits.hpp
similarity index 100%
rename from src/libs/services/database/impl/EnumSetTraits.hpp
rename to src/libs/database/impl/EnumSetTraits.hpp
diff --git a/src/libs/services/database/impl/IdTypeTraits.hpp b/src/libs/database/impl/IdTypeTraits.hpp
similarity index 97%
rename from src/libs/services/database/impl/IdTypeTraits.hpp
rename to src/libs/database/impl/IdTypeTraits.hpp
index 54b3e8d7..bdfa0045 100644
--- a/src/libs/services/database/impl/IdTypeTraits.hpp
+++ b/src/libs/database/impl/IdTypeTraits.hpp
@@ -22,7 +22,7 @@
#include
#include
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
namespace Wt::Dbo
{
diff --git a/src/libs/services/database/impl/Listen.cpp b/src/libs/database/impl/Listen.cpp
similarity index 96%
rename from src/libs/services/database/impl/Listen.cpp
rename to src/libs/database/impl/Listen.cpp
index 60108db8..57005412 100644
--- a/src/libs/services/database/impl/Listen.cpp
+++ b/src/libs/database/impl/Listen.cpp
@@ -17,10 +17,10 @@
* along with LMS. If not, see .
*/
-#include "services/database/Listen.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Listen.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "SqlQuery.hpp"
#include "Utils.hpp"
@@ -249,29 +249,31 @@ namespace Database
return Utils::execQuery(query, range);
}
- std::size_t Listen::getCount(Session& session, UserId userId, ScrobblingBackend backend, TrackId trackId)
+ std::size_t Listen::getCount(Session& session, UserId userId, TrackId trackId)
{
session.checkReadTransaction();
return session.getDboSession().query("SELECT COUNT(*) from listen l")
+ .join("user u ON u.id = l.user_id")
.where("l.track_id = ?").bind(trackId)
.where("l.user_id = ?").bind(userId)
- .where("l.backend = ?").bind(backend)
+ .where("l.backend = u.scrobbling_backend")
.resultValue();
}
- std::size_t Listen::getCount(Session& session, UserId userId, ScrobblingBackend backend, ReleaseId releaseId)
+ std::size_t Listen::getCount(Session& session, UserId userId, ReleaseId releaseId)
{
session.checkReadTransaction();
- return session.getDboSession().query("SELECT IFNULL(MIN(count_result), 0)"
+ return session.getDboSession().query(
+ "SELECT IFNULL(MIN(count_result), 0)"
" FROM ("
" SELECT COUNT(l.track_id) AS count_result"
" FROM track t"
- " LEFT JOIN listen l ON t.id = l.track_id AND l.backend = ? AND l.user_id = ?"
+ " LEFT JOIN listen l ON t.id = l.track_id AND l.backend = (SELECT scrobbling_backend FROM user WHERE id = ?) AND l.user_id = ?"
" WHERE t.release_id = ?"
" GROUP BY t.id)")
- .bind(backend)
+ .bind(userId)
.bind(userId)
.bind(releaseId)
.resultValue();
diff --git a/src/libs/services/database/impl/Migration.cpp b/src/libs/database/impl/Migration.cpp
similarity index 98%
rename from src/libs/services/database/impl/Migration.cpp
rename to src/libs/database/impl/Migration.cpp
index cb6a9169..33fe0258 100644
--- a/src/libs/services/database/impl/Migration.cpp
+++ b/src/libs/database/impl/Migration.cpp
@@ -21,10 +21,10 @@
#include
-#include "services/database/Db.hpp"
-#include "services/database/ScanSettings.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Db.hpp"
+#include "database/ScanSettings.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/database/impl/Migration.hpp b/src/libs/database/impl/Migration.hpp
similarity index 100%
rename from src/libs/services/database/impl/Migration.hpp
rename to src/libs/database/impl/Migration.hpp
diff --git a/src/libs/services/database/impl/Release.cpp b/src/libs/database/impl/Release.cpp
similarity index 98%
rename from src/libs/services/database/impl/Release.cpp
rename to src/libs/database/impl/Release.cpp
index cc55a317..9dcda60e 100644
--- a/src/libs/services/database/impl/Release.cpp
+++ b/src/libs/database/impl/Release.cpp
@@ -17,15 +17,15 @@
* along with LMS. If not, see .
*/
-#include "services/database/Release.hpp"
+#include "database/Release.hpp"
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "SqlQuery.hpp"
#include "EnumSetTraits.hpp"
diff --git a/src/libs/services/database/impl/ScanSettings.cpp b/src/libs/database/impl/ScanSettings.cpp
similarity index 87%
rename from src/libs/services/database/impl/ScanSettings.cpp
rename to src/libs/database/impl/ScanSettings.cpp
index 26c9ed50..5e5f7cc1 100644
--- a/src/libs/services/database/impl/ScanSettings.cpp
+++ b/src/libs/database/impl/ScanSettings.cpp
@@ -17,7 +17,7 @@
* along with LMS. If not, see .
*/
-#include "services/database/ScanSettings.hpp"
+#include "database/ScanSettings.hpp"
#include
@@ -25,11 +25,21 @@
#include "utils/ILogger.hpp"
#include "utils/String.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Session.hpp"
+#include "database/Cluster.hpp"
+#include "database/Session.hpp"
namespace Database
{
+ void ScanSettings::init(Session& session)
+ {
+ session.checkWriteTransaction();
+
+ if (pointer settings{ get(session) })
+ return;
+
+ session.getDboSession().add(std::make_unique());
+ }
+
ScanSettings::pointer ScanSettings::get(Session& session)
{
session.checkReadTransaction();
diff --git a/src/libs/services/database/impl/Session.cpp b/src/libs/database/impl/Session.cpp
similarity index 91%
rename from src/libs/services/database/impl/Session.cpp
rename to src/libs/database/impl/Session.cpp
index 84c970ff..06ce0151 100644
--- a/src/libs/services/database/impl/Session.cpp
+++ b/src/libs/database/impl/Session.cpp
@@ -17,30 +17,30 @@
* along with LMS. If not, see .
*/
-#include "services/database/Session.hpp"
+#include "database/Session.hpp"
#include
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/AuthToken.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Listen.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/ScanSettings.hpp"
-#include "services/database/StarredArtist.hpp"
-#include "services/database/StarredRelease.hpp"
-#include "services/database/StarredTrack.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackBookmark.hpp"
-#include "services/database/TrackArtistLink.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/TrackFeatures.hpp"
-#include "services/database/TransactionChecker.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/AuthToken.hpp"
+#include "database/Cluster.hpp"
+#include "database/Db.hpp"
+#include "database/Listen.hpp"
+#include "database/Release.hpp"
+#include "database/ScanSettings.hpp"
+#include "database/StarredArtist.hpp"
+#include "database/StarredRelease.hpp"
+#include "database/StarredTrack.hpp"
+#include "database/Track.hpp"
+#include "database/TrackBookmark.hpp"
+#include "database/TrackArtistLink.hpp"
+#include "database/TrackList.hpp"
+#include "database/TrackFeatures.hpp"
+#include "database/TransactionChecker.hpp"
+#include "database/User.hpp"
#include "EnumSetTraits.hpp"
#include "Migration.hpp"
@@ -171,6 +171,12 @@ namespace Database
_session.execute("CREATE INDEX IF NOT EXISTS starred_track_user_backend_idx ON starred_track(user_id,backend)");
_session.execute("CREATE INDEX IF NOT EXISTS starred_track_track_user_backend_idx ON starred_track(track_id,user_id,backend)");
}
+
+ // Singletons
+ {
+ auto uniqueTransaction{ createWriteTransaction() };
+ ScanSettings::init(*this);
+ }
}
void Session::analyze()
diff --git a/src/libs/services/database/impl/SqlQuery.cpp b/src/libs/database/impl/SqlQuery.cpp
similarity index 100%
rename from src/libs/services/database/impl/SqlQuery.cpp
rename to src/libs/database/impl/SqlQuery.cpp
diff --git a/src/libs/services/database/impl/SqlQuery.hpp b/src/libs/database/impl/SqlQuery.hpp
similarity index 100%
rename from src/libs/services/database/impl/SqlQuery.hpp
rename to src/libs/database/impl/SqlQuery.hpp
diff --git a/src/libs/services/database/impl/StarredArtist.cpp b/src/libs/database/impl/StarredArtist.cpp
similarity index 94%
rename from src/libs/services/database/impl/StarredArtist.cpp
rename to src/libs/database/impl/StarredArtist.cpp
index 33395538..be0c7b47 100644
--- a/src/libs/services/database/impl/StarredArtist.cpp
+++ b/src/libs/database/impl/StarredArtist.cpp
@@ -17,13 +17,13 @@
* along with LMS. If not, see .
*/
-#include "services/database/StarredArtist.hpp"
+#include "database/StarredArtist.hpp"
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
diff --git a/src/libs/services/database/impl/StarredRelease.cpp b/src/libs/database/impl/StarredRelease.cpp
similarity index 94%
rename from src/libs/services/database/impl/StarredRelease.cpp
rename to src/libs/database/impl/StarredRelease.cpp
index ab6f1900..e2aac889 100644
--- a/src/libs/services/database/impl/StarredRelease.cpp
+++ b/src/libs/database/impl/StarredRelease.cpp
@@ -17,13 +17,13 @@
* along with LMS. If not, see .
*/
-#include "services/database/StarredRelease.hpp"
+#include "database/StarredRelease.hpp"
#include
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
diff --git a/src/libs/services/database/impl/StarredTrack.cpp b/src/libs/database/impl/StarredTrack.cpp
similarity index 95%
rename from src/libs/services/database/impl/StarredTrack.cpp
rename to src/libs/database/impl/StarredTrack.cpp
index f4b139c4..df90fca6 100644
--- a/src/libs/services/database/impl/StarredTrack.cpp
+++ b/src/libs/database/impl/StarredTrack.cpp
@@ -17,13 +17,13 @@
* along with LMS. If not, see .
*/
-#include "services/database/StarredTrack.hpp"
+#include "database/StarredTrack.hpp"
#include
-#include "services/database/Track.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Track.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
diff --git a/src/libs/services/database/impl/StringViewTraits.hpp b/src/libs/database/impl/StringViewTraits.hpp
similarity index 100%
rename from src/libs/services/database/impl/StringViewTraits.hpp
rename to src/libs/database/impl/StringViewTraits.hpp
diff --git a/src/libs/services/database/impl/Track.cpp b/src/libs/database/impl/Track.cpp
similarity index 98%
rename from src/libs/services/database/impl/Track.cpp
rename to src/libs/database/impl/Track.cpp
index 71ec3932..4811dc95 100644
--- a/src/libs/services/database/impl/Track.cpp
+++ b/src/libs/database/impl/Track.cpp
@@ -17,17 +17,17 @@
* along with LMS. If not, see .
*/
-#include "services/database/Track.hpp"
+#include "database/Track.hpp"
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/TrackArtistLink.hpp"
-#include "services/database/TrackFeatures.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Release.hpp"
+#include "database/TrackArtistLink.hpp"
+#include "database/TrackFeatures.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "IdTypeTraits.hpp"
diff --git a/src/libs/services/database/impl/TrackArtistLink.cpp b/src/libs/database/impl/TrackArtistLink.cpp
similarity index 95%
rename from src/libs/services/database/impl/TrackArtistLink.cpp
rename to src/libs/database/impl/TrackArtistLink.cpp
index 13e926a5..dd0ff553 100644
--- a/src/libs/services/database/impl/TrackArtistLink.cpp
+++ b/src/libs/database/impl/TrackArtistLink.cpp
@@ -17,11 +17,11 @@
* along with LMS. If not, see .
*/
-#include "services/database/TrackArtistLink.hpp"
+#include "database/TrackArtistLink.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Artist.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
diff --git a/src/libs/services/database/impl/TrackBookmark.cpp b/src/libs/database/impl/TrackBookmark.cpp
similarity index 93%
rename from src/libs/services/database/impl/TrackBookmark.cpp
rename to src/libs/database/impl/TrackBookmark.cpp
index 1ecc7dbf..a30f80a4 100644
--- a/src/libs/services/database/impl/TrackBookmark.cpp
+++ b/src/libs/database/impl/TrackBookmark.cpp
@@ -17,11 +17,11 @@
* along with LMS. If not, see .
*/
-#include "services/database/TrackBookmark.hpp"
+#include "database/TrackBookmark.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
diff --git a/src/libs/services/database/impl/TrackFeatures.cpp b/src/libs/database/impl/TrackFeatures.cpp
similarity index 96%
rename from src/libs/services/database/impl/TrackFeatures.cpp
rename to src/libs/database/impl/TrackFeatures.cpp
index 4b196497..6468e826 100644
--- a/src/libs/services/database/impl/TrackFeatures.cpp
+++ b/src/libs/database/impl/TrackFeatures.cpp
@@ -17,13 +17,13 @@
* along with LMS. If not, see .
*/
-#include "services/database/TrackFeatures.hpp"
+#include "database/TrackFeatures.hpp"
#include
#include
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "utils/ILogger.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
diff --git a/src/libs/services/database/impl/TrackList.cpp b/src/libs/database/impl/TrackList.cpp
similarity index 97%
rename from src/libs/services/database/impl/TrackList.cpp
rename to src/libs/database/impl/TrackList.cpp
index cc2e3b72..974c5afc 100644
--- a/src/libs/services/database/impl/TrackList.cpp
+++ b/src/libs/database/impl/TrackList.cpp
@@ -16,18 +16,18 @@
* You should have received a copy of the GNU General Public License
* along with LMS. If not, see .
*/
-#include "services/database/TrackList.hpp"
+#include "database/TrackList.hpp"
#include
#include "utils/ILogger.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
-#include "services/database/Track.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
+#include "database/Track.hpp"
#include "SqlQuery.hpp"
#include "StringViewTraits.hpp"
#include "IdTypeTraits.hpp"
diff --git a/src/libs/services/database/impl/TransactionChecker.cpp b/src/libs/database/impl/TransactionChecker.cpp
similarity index 97%
rename from src/libs/services/database/impl/TransactionChecker.cpp
rename to src/libs/database/impl/TransactionChecker.cpp
index ffaf8439..859cd44d 100644
--- a/src/libs/services/database/impl/TransactionChecker.cpp
+++ b/src/libs/database/impl/TransactionChecker.cpp
@@ -17,11 +17,11 @@
* along with LMS. If not, see .
*/
-#include "services/database/TransactionChecker.hpp"
+#include "database/TransactionChecker.hpp"
#include
-#include "services/database/Session.hpp"
+#include "database/Session.hpp"
#if !defined(NDEBUG)
#define LMS_CHECK_TRANSACTION_ACCESSES 1
diff --git a/src/libs/services/database/impl/Types.cpp b/src/libs/database/impl/Types.cpp
similarity index 96%
rename from src/libs/services/database/impl/Types.cpp
rename to src/libs/database/impl/Types.cpp
index ef02556d..f3674083 100644
--- a/src/libs/services/database/impl/Types.cpp
+++ b/src/libs/database/impl/Types.cpp
@@ -17,7 +17,7 @@
* along with LMS. If not, see .
*/
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
#include
diff --git a/src/libs/services/database/impl/User.cpp b/src/libs/database/impl/User.cpp
similarity index 93%
rename from src/libs/services/database/impl/User.cpp
rename to src/libs/database/impl/User.cpp
index 054babb0..88051069 100644
--- a/src/libs/services/database/impl/User.cpp
+++ b/src/libs/database/impl/User.cpp
@@ -17,12 +17,12 @@
* along with LMS. If not, see .
*/
-#include "services/database/User.hpp"
+#include "database/User.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Artist.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "utils/ILogger.hpp"
#include "IdTypeTraits.hpp"
#include "StringViewTraits.hpp"
diff --git a/src/libs/services/database/impl/Utils.cpp b/src/libs/database/impl/Utils.cpp
similarity index 100%
rename from src/libs/services/database/impl/Utils.cpp
rename to src/libs/database/impl/Utils.cpp
diff --git a/src/libs/services/database/impl/Utils.hpp b/src/libs/database/impl/Utils.hpp
similarity index 98%
rename from src/libs/services/database/impl/Utils.hpp
rename to src/libs/database/impl/Utils.hpp
index 85623814..68e82cda 100644
--- a/src/libs/services/database/impl/Utils.hpp
+++ b/src/libs/database/impl/Utils.hpp
@@ -26,7 +26,7 @@
#include
#include
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
namespace Database::Utils
{
diff --git a/src/libs/services/database/include/services/database/Artist.hpp b/src/libs/database/include/database/Artist.hpp
similarity index 95%
rename from src/libs/services/database/include/services/database/Artist.hpp
rename to src/libs/database/include/database/Artist.hpp
index b64b0226..bbe03a64 100644
--- a/src/libs/services/database/include/services/database/Artist.hpp
+++ b/src/libs/database/include/database/Artist.hpp
@@ -27,13 +27,13 @@
#include
#include
-#include "services/database/ArtistId.hpp"
-#include "services/database/ClusterId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
-#include "services/database/TrackId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ClusterId.hpp"
+#include "database/Object.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
+#include "database/TrackId.hpp"
#include "utils/EnumSet.hpp"
#include "utils/UUID.hpp"
diff --git a/src/libs/services/database/include/services/database/ArtistId.hpp b/src/libs/database/include/database/ArtistId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/ArtistId.hpp
rename to src/libs/database/include/database/ArtistId.hpp
index 01461d90..4735f37b 100644
--- a/src/libs/services/database/include/services/database/ArtistId.hpp
+++ b/src/libs/database/include/database/ArtistId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(ArtistId)
diff --git a/src/libs/services/database/include/services/database/AuthToken.hpp b/src/libs/database/include/database/AuthToken.hpp
similarity index 95%
rename from src/libs/services/database/include/services/database/AuthToken.hpp
rename to src/libs/database/include/database/AuthToken.hpp
index a67a7ca3..da5e1437 100644
--- a/src/libs/services/database/include/services/database/AuthToken.hpp
+++ b/src/libs/database/include/database/AuthToken.hpp
@@ -24,8 +24,8 @@
#include
#include
-#include "services/database/AuthTokenId.hpp"
-#include "services/database/Object.hpp"
+#include "database/AuthTokenId.hpp"
+#include "database/Object.hpp"
namespace Database
{
diff --git a/src/libs/services/database/include/services/database/AuthTokenId.hpp b/src/libs/database/include/database/AuthTokenId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/AuthTokenId.hpp
rename to src/libs/database/include/database/AuthTokenId.hpp
index 86de8770..3abf8654 100644
--- a/src/libs/services/database/include/services/database/AuthTokenId.hpp
+++ b/src/libs/database/include/database/AuthTokenId.hpp
@@ -19,6 +19,6 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(AuthTokenId)
diff --git a/src/libs/services/database/include/services/database/Cluster.hpp b/src/libs/database/include/database/Cluster.hpp
similarity index 96%
rename from src/libs/services/database/include/services/database/Cluster.hpp
rename to src/libs/database/include/database/Cluster.hpp
index efdedc5b..f7374454 100644
--- a/src/libs/services/database/include/services/database/Cluster.hpp
+++ b/src/libs/database/include/database/Cluster.hpp
@@ -28,11 +28,11 @@
#include
#include
-#include "services/database/ClusterId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/Types.hpp"
+#include "database/ClusterId.hpp"
+#include "database/Object.hpp"
+#include "database/Release.hpp"
+#include "database/TrackId.hpp"
+#include "database/Types.hpp"
namespace Database {
diff --git a/src/libs/services/database/include/services/database/ClusterId.hpp b/src/libs/database/include/database/ClusterId.hpp
similarity index 95%
rename from src/libs/services/database/include/services/database/ClusterId.hpp
rename to src/libs/database/include/database/ClusterId.hpp
index d14a88c0..c6ebbfd1 100644
--- a/src/libs/services/database/include/services/database/ClusterId.hpp
+++ b/src/libs/database/include/database/ClusterId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(ClusterId)
LMS_DECLARE_IDTYPE(ClusterTypeId)
diff --git a/src/libs/services/database/include/services/database/Db.hpp b/src/libs/database/include/database/Db.hpp
similarity index 100%
rename from src/libs/services/database/include/services/database/Db.hpp
rename to src/libs/database/include/database/Db.hpp
diff --git a/src/libs/services/database/include/services/database/IdType.hpp b/src/libs/database/include/database/IdType.hpp
similarity index 100%
rename from src/libs/services/database/include/services/database/IdType.hpp
rename to src/libs/database/include/database/IdType.hpp
diff --git a/src/libs/services/database/include/services/database/Listen.hpp b/src/libs/database/include/database/Listen.hpp
similarity index 91%
rename from src/libs/services/database/include/services/database/Listen.hpp
rename to src/libs/database/include/database/Listen.hpp
index 66eadcf3..20e90b3b 100644
--- a/src/libs/services/database/include/services/database/Listen.hpp
+++ b/src/libs/database/include/database/Listen.hpp
@@ -24,14 +24,14 @@
#include
#include
-#include "services/database/ArtistId.hpp"
-#include "services/database/ClusterId.hpp"
-#include "services/database/ListenId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ClusterId.hpp"
+#include "database/ListenId.hpp"
+#include "database/Object.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
namespace Database
{
@@ -73,8 +73,8 @@ namespace Database
static RangeResults getRecentReleases(Session& session, UserId userId, ScrobblingBackend backend, const std::vector& clusterIds, std::optional range = std::nullopt);
static RangeResults getRecentTracks(Session& session, UserId userId, ScrobblingBackend backend, const std::vector& clusterIds, std::optional range = std::nullopt);
- static std::size_t getCount(Session& session, UserId userId, ScrobblingBackend backend, TrackId trackId);
- static std::size_t getCount(Session& session, UserId userId, ScrobblingBackend backend, ReleaseId trackId);
+ static std::size_t getCount(Session& session, UserId userId, TrackId trackId); // for the current backend
+ static std::size_t getCount(Session& session, UserId userId, ReleaseId trackId); // for the current backend
static pointer getMostRecentListen(Session& session, UserId userId, ScrobblingBackend backend, ReleaseId releaseId);
static pointer getMostRecentListen(Session& session, UserId userId, ScrobblingBackend backend, TrackId releaseId);
diff --git a/src/libs/services/database/include/services/database/ListenId.hpp b/src/libs/database/include/database/ListenId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/ListenId.hpp
rename to src/libs/database/include/database/ListenId.hpp
index e19019ee..690d2114 100644
--- a/src/libs/services/database/include/services/database/ListenId.hpp
+++ b/src/libs/database/include/database/ListenId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(ListenId)
diff --git a/src/libs/services/database/include/services/database/Object.hpp b/src/libs/database/include/database/Object.hpp
similarity index 96%
rename from src/libs/services/database/include/services/database/Object.hpp
rename to src/libs/database/include/database/Object.hpp
index a62b5fb1..1e06537a 100644
--- a/src/libs/services/database/include/services/database/Object.hpp
+++ b/src/libs/database/include/database/Object.hpp
@@ -21,8 +21,8 @@
#include
#include
-#include "services/database/IdType.hpp"
-#include "services/database/TransactionChecker.hpp"
+#include "database/IdType.hpp"
+#include "database/TransactionChecker.hpp"
namespace Database
{
diff --git a/src/libs/services/database/include/services/database/Release.hpp b/src/libs/database/include/database/Release.hpp
similarity index 97%
rename from src/libs/services/database/include/services/database/Release.hpp
rename to src/libs/database/include/database/Release.hpp
index 6c41c0c0..ab448472 100644
--- a/src/libs/services/database/include/services/database/Release.hpp
+++ b/src/libs/database/include/database/Release.hpp
@@ -26,12 +26,12 @@
#include
#include
-#include "services/database/ArtistId.hpp"
-#include "services/database/ClusterId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ClusterId.hpp"
+#include "database/Object.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
#include "utils/EnumSet.hpp"
#include "utils/UUID.hpp"
diff --git a/src/libs/services/database/include/services/database/ReleaseId.hpp b/src/libs/database/include/database/ReleaseId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/ReleaseId.hpp
rename to src/libs/database/include/database/ReleaseId.hpp
index c9c07c7a..5ee986bc 100644
--- a/src/libs/services/database/include/services/database/ReleaseId.hpp
+++ b/src/libs/database/include/database/ReleaseId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(ReleaseId)
diff --git a/src/libs/services/database/include/services/database/ScanSettings.hpp b/src/libs/database/include/database/ScanSettings.hpp
similarity index 97%
rename from src/libs/services/database/include/services/database/ScanSettings.hpp
rename to src/libs/database/include/database/ScanSettings.hpp
index 8b1a2dbe..2ed2cf5d 100644
--- a/src/libs/services/database/include/services/database/ScanSettings.hpp
+++ b/src/libs/database/include/database/ScanSettings.hpp
@@ -27,8 +27,8 @@
#include
#include
-#include "services/database/IdType.hpp"
-#include "services/database/Object.hpp"
+#include "database/IdType.hpp"
+#include "database/Object.hpp"
LMS_DECLARE_IDTYPE(ScanSettingsId)
diff --git a/src/libs/services/database/include/services/database/Session.hpp b/src/libs/database/include/database/Session.hpp
similarity index 96%
rename from src/libs/services/database/include/services/database/Session.hpp
rename to src/libs/database/include/database/Session.hpp
index 75e2b1de..9b96ea0a 100644
--- a/src/libs/services/database/include/services/database/Session.hpp
+++ b/src/libs/database/include/database/Session.hpp
@@ -23,8 +23,8 @@
#include
#include "utils/RecursiveSharedMutex.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/TransactionChecker.hpp"
+#include "database/Object.hpp"
+#include "database/TransactionChecker.hpp"
namespace Database
{
diff --git a/src/libs/services/database/include/services/database/StarredArtist.hpp b/src/libs/database/include/database/StarredArtist.hpp
similarity index 93%
rename from src/libs/services/database/include/services/database/StarredArtist.hpp
rename to src/libs/database/include/database/StarredArtist.hpp
index 6d53225c..99573797 100644
--- a/src/libs/services/database/include/services/database/StarredArtist.hpp
+++ b/src/libs/database/include/database/StarredArtist.hpp
@@ -22,11 +22,11 @@
#include
#include
-#include "services/database/ArtistId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/StarredArtistId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/Object.hpp"
+#include "database/StarredArtistId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
namespace Database
{
diff --git a/src/libs/services/database/include/services/database/StarredArtistId.hpp b/src/libs/database/include/database/StarredArtistId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/StarredArtistId.hpp
rename to src/libs/database/include/database/StarredArtistId.hpp
index 3a5ebddf..8b320fd0 100644
--- a/src/libs/services/database/include/services/database/StarredArtistId.hpp
+++ b/src/libs/database/include/database/StarredArtistId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(StarredArtistId)
diff --git a/src/libs/services/database/include/services/database/StarredRelease.hpp b/src/libs/database/include/database/StarredRelease.hpp
similarity index 92%
rename from src/libs/services/database/include/services/database/StarredRelease.hpp
rename to src/libs/database/include/database/StarredRelease.hpp
index f42866d4..25b4b4b5 100644
--- a/src/libs/services/database/include/services/database/StarredRelease.hpp
+++ b/src/libs/database/include/database/StarredRelease.hpp
@@ -22,11 +22,11 @@
#include
#include
-#include "services/database/Object.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/StarredReleaseId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/Object.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/StarredReleaseId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
namespace Database
{
diff --git a/src/libs/services/database/include/services/database/StarredReleaseId.hpp b/src/libs/database/include/database/StarredReleaseId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/StarredReleaseId.hpp
rename to src/libs/database/include/database/StarredReleaseId.hpp
index 380baf43..a2b1dbc7 100644
--- a/src/libs/services/database/include/services/database/StarredReleaseId.hpp
+++ b/src/libs/database/include/database/StarredReleaseId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(StarredReleaseId)
diff --git a/src/libs/services/database/include/services/database/StarredTrack.hpp b/src/libs/database/include/database/StarredTrack.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/StarredTrack.hpp
rename to src/libs/database/include/database/StarredTrack.hpp
index fa85f41d..787fcc31 100644
--- a/src/libs/services/database/include/services/database/StarredTrack.hpp
+++ b/src/libs/database/include/database/StarredTrack.hpp
@@ -22,11 +22,11 @@
#include
#include
-#include "services/database/TrackId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/StarredTrackId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/TrackId.hpp"
+#include "database/Object.hpp"
+#include "database/StarredTrackId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
#include "utils/EnumSet.hpp"
namespace Database
diff --git a/src/libs/services/database/include/services/database/StarredTrackId.hpp b/src/libs/database/include/database/StarredTrackId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/StarredTrackId.hpp
rename to src/libs/database/include/database/StarredTrackId.hpp
index 510ef2c7..14782fae 100644
--- a/src/libs/services/database/include/services/database/StarredTrackId.hpp
+++ b/src/libs/database/include/database/StarredTrackId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(StarredTrackId)
diff --git a/src/libs/services/database/include/services/database/Track.hpp b/src/libs/database/include/database/Track.hpp
similarity index 97%
rename from src/libs/services/database/include/services/database/Track.hpp
rename to src/libs/database/include/database/Track.hpp
index 5865316a..3fed9eb7 100644
--- a/src/libs/services/database/include/services/database/Track.hpp
+++ b/src/libs/database/include/database/Track.hpp
@@ -35,14 +35,14 @@
#include "utils/EnumSet.hpp"
#include "utils/UUID.hpp"
-#include "services/database/ArtistId.hpp"
-#include "services/database/ClusterId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/TrackListId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ClusterId.hpp"
+#include "database/Object.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
+#include "database/TrackListId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
namespace Database {
diff --git a/src/libs/services/database/include/services/database/TrackArtistLink.hpp b/src/libs/database/include/database/TrackArtistLink.hpp
similarity index 93%
rename from src/libs/services/database/include/services/database/TrackArtistLink.hpp
rename to src/libs/database/include/database/TrackArtistLink.hpp
index 657d6ae3..6a4b5cd9 100644
--- a/src/libs/services/database/include/services/database/TrackArtistLink.hpp
+++ b/src/libs/database/include/database/TrackArtistLink.hpp
@@ -25,12 +25,12 @@
#include
-#include "services/database/ArtistId.hpp"
-#include "services/database/IdType.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/Types.hpp"
+#include "database/ArtistId.hpp"
+#include "database/IdType.hpp"
+#include "database/Object.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
+#include "database/Types.hpp"
#include "utils/EnumSet.hpp"
LMS_DECLARE_IDTYPE(TrackArtistLinkId)
diff --git a/src/libs/services/database/include/services/database/TrackBookmark.hpp b/src/libs/database/include/database/TrackBookmark.hpp
similarity index 92%
rename from src/libs/services/database/include/services/database/TrackBookmark.hpp
rename to src/libs/database/include/database/TrackBookmark.hpp
index 15aaaf07..8d541ebc 100644
--- a/src/libs/services/database/include/services/database/TrackBookmark.hpp
+++ b/src/libs/database/include/database/TrackBookmark.hpp
@@ -24,11 +24,11 @@
#include
-#include "services/database/IdType.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/IdType.hpp"
+#include "database/Object.hpp"
+#include "database/TrackId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
LMS_DECLARE_IDTYPE(TrackBookmarkId)
diff --git a/src/libs/services/database/include/services/database/TrackFeatures.hpp b/src/libs/database/include/database/TrackFeatures.hpp
similarity index 93%
rename from src/libs/services/database/include/services/database/TrackFeatures.hpp
rename to src/libs/database/include/database/TrackFeatures.hpp
index 5c7715ec..63abc5c6 100644
--- a/src/libs/services/database/include/services/database/TrackFeatures.hpp
+++ b/src/libs/database/include/database/TrackFeatures.hpp
@@ -27,10 +27,10 @@
#include
-#include "services/database/IdType.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/Types.hpp"
+#include "database/IdType.hpp"
+#include "database/Object.hpp"
+#include "database/TrackId.hpp"
+#include "database/Types.hpp"
LMS_DECLARE_IDTYPE(TrackFeaturesId)
diff --git a/src/libs/services/database/include/services/database/TrackId.hpp b/src/libs/database/include/database/TrackId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/TrackId.hpp
rename to src/libs/database/include/database/TrackId.hpp
index 40684e3e..f94ea4f2 100644
--- a/src/libs/services/database/include/services/database/TrackId.hpp
+++ b/src/libs/database/include/database/TrackId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(TrackId)
diff --git a/src/libs/services/database/include/services/database/TrackList.hpp b/src/libs/database/include/database/TrackList.hpp
similarity index 96%
rename from src/libs/services/database/include/services/database/TrackList.hpp
rename to src/libs/database/include/database/TrackList.hpp
index 944cb1e6..fee3386d 100644
--- a/src/libs/services/database/include/services/database/TrackList.hpp
+++ b/src/libs/database/include/database/TrackList.hpp
@@ -27,12 +27,12 @@
#include
#include
-#include "services/database/ClusterId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/TrackListId.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/ClusterId.hpp"
+#include "database/Object.hpp"
+#include "database/TrackId.hpp"
+#include "database/TrackListId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
namespace Database {
diff --git a/src/libs/services/database/include/services/database/TrackListId.hpp b/src/libs/database/include/database/TrackListId.hpp
similarity index 95%
rename from src/libs/services/database/include/services/database/TrackListId.hpp
rename to src/libs/database/include/database/TrackListId.hpp
index 3dc35d07..16b63491 100644
--- a/src/libs/services/database/include/services/database/TrackListId.hpp
+++ b/src/libs/database/include/database/TrackListId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(TrackListId)
LMS_DECLARE_IDTYPE(TrackListEntryId)
diff --git a/src/libs/services/database/include/services/database/TransactionChecker.hpp b/src/libs/database/include/database/TransactionChecker.hpp
similarity index 100%
rename from src/libs/services/database/include/services/database/TransactionChecker.hpp
rename to src/libs/database/include/database/TransactionChecker.hpp
diff --git a/src/libs/services/database/include/services/database/Types.hpp b/src/libs/database/include/database/Types.hpp
similarity index 100%
rename from src/libs/services/database/include/services/database/Types.hpp
rename to src/libs/database/include/database/Types.hpp
diff --git a/src/libs/services/database/include/services/database/User.hpp b/src/libs/database/include/database/User.hpp
similarity index 98%
rename from src/libs/services/database/include/services/database/User.hpp
rename to src/libs/database/include/database/User.hpp
index c88269f6..8eb82e7c 100644
--- a/src/libs/services/database/include/services/database/User.hpp
+++ b/src/libs/database/include/database/User.hpp
@@ -26,9 +26,9 @@
#include
#include
-#include "services/database/Object.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/Object.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
#include "utils/UUID.hpp"
namespace Database {
diff --git a/src/libs/services/database/include/services/database/UserId.hpp b/src/libs/database/include/database/UserId.hpp
similarity index 94%
rename from src/libs/services/database/include/services/database/UserId.hpp
rename to src/libs/database/include/database/UserId.hpp
index c337f8fa..3ebb254e 100644
--- a/src/libs/services/database/include/services/database/UserId.hpp
+++ b/src/libs/database/include/database/UserId.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/IdType.hpp"
+#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(UserId)
diff --git a/src/libs/services/database/test/Artist.cpp b/src/libs/database/test/Artist.cpp
similarity index 100%
rename from src/libs/services/database/test/Artist.cpp
rename to src/libs/database/test/Artist.cpp
diff --git a/src/libs/services/database/test/CMakeLists.txt b/src/libs/database/test/CMakeLists.txt
similarity index 100%
rename from src/libs/services/database/test/CMakeLists.txt
rename to src/libs/database/test/CMakeLists.txt
diff --git a/src/libs/services/database/test/Cluster.cpp b/src/libs/database/test/Cluster.cpp
similarity index 100%
rename from src/libs/services/database/test/Cluster.cpp
rename to src/libs/database/test/Cluster.cpp
diff --git a/src/libs/services/database/test/Common.cpp b/src/libs/database/test/Common.cpp
similarity index 90%
rename from src/libs/services/database/test/Common.cpp
rename to src/libs/database/test/Common.cpp
index 7f37462e..80fcc170 100644
--- a/src/libs/services/database/test/Common.cpp
+++ b/src/libs/database/test/Common.cpp
@@ -19,21 +19,21 @@
#include "Common.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Listen.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/StarredArtist.hpp"
-#include "services/database/StarredRelease.hpp"
-#include "services/database/StarredTrack.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackArtistLink.hpp"
-#include "services/database/TrackBookmark.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Db.hpp"
+#include "database/Listen.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/StarredArtist.hpp"
+#include "database/StarredRelease.hpp"
+#include "database/StarredTrack.hpp"
+#include "database/Track.hpp"
+#include "database/TrackArtistLink.hpp"
+#include "database/TrackBookmark.hpp"
+#include "database/TrackList.hpp"
+#include "database/Types.hpp"
+#include "database/User.hpp"
TmpDatabase::TmpDatabase()
: _tmpFile{ std::tmpnam(nullptr) }
diff --git a/src/libs/services/database/test/Common.hpp b/src/libs/database/test/Common.hpp
similarity index 85%
rename from src/libs/services/database/test/Common.hpp
rename to src/libs/database/test/Common.hpp
index c26e5630..4da03734 100644
--- a/src/libs/services/database/test/Common.hpp
+++ b/src/libs/database/test/Common.hpp
@@ -24,20 +24,20 @@
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Listen.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/ScanSettings.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackArtistLink.hpp"
-#include "services/database/TrackBookmark.hpp"
-#include "services/database/TrackFeatures.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Db.hpp"
+#include "database/Listen.hpp"
+#include "database/Release.hpp"
+#include "database/ScanSettings.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/TrackArtistLink.hpp"
+#include "database/TrackBookmark.hpp"
+#include "database/TrackFeatures.hpp"
+#include "database/TrackList.hpp"
+#include "database/Types.hpp"
+#include "database/User.hpp"
template
class ScopedEntity
diff --git a/src/libs/services/database/test/DatabaseTest.cpp b/src/libs/database/test/DatabaseTest.cpp
similarity index 100%
rename from src/libs/services/database/test/DatabaseTest.cpp
rename to src/libs/database/test/DatabaseTest.cpp
diff --git a/src/libs/services/database/test/Listen.cpp b/src/libs/database/test/Listen.cpp
similarity index 98%
rename from src/libs/services/database/test/Listen.cpp
rename to src/libs/database/test/Listen.cpp
index 901a3f13..6d075ced 100644
--- a/src/libs/services/database/test/Listen.cpp
+++ b/src/libs/database/test/Listen.cpp
@@ -18,7 +18,7 @@
*/
#include "Common.hpp"
-#include "services/database/Listen.hpp"
+#include "database/Listen.hpp"
using namespace Database;
@@ -881,7 +881,7 @@ TEST_F(DatabaseFixture, Listen_getCount_track)
{
auto transaction{ session.createReadTransaction() };
- const std::size_t count{ Listen::getCount(session, user->getId(), ScrobblingBackend::Internal, track.getId()) };
+ const std::size_t count{ Listen::getCount(session, user->getId(), track.getId()) };
EXPECT_EQ(count, 0);
}
@@ -891,9 +891,20 @@ TEST_F(DatabaseFixture, Listen_getCount_track)
{
auto transaction{ session.createReadTransaction() };
- const std::size_t count{ Listen::getCount(session, user->getId(), ScrobblingBackend::Internal, track.getId()) };
+ const std::size_t count{ Listen::getCount(session, user->getId(), track.getId()) };
EXPECT_EQ(count, 1);
}
+
+ {
+ auto transaction{ session.createWriteTransaction() };
+ user.get().modify()->setScrobblingBackend(ScrobblingBackend::ListenBrainz);
+ }
+
+ {
+ auto transaction{ session.createReadTransaction() };
+ const std::size_t count{ Listen::getCount(session, user->getId(), track.getId()) };
+ EXPECT_EQ(count, 0);
+ }
}
TEST_F(DatabaseFixture, Listen_getCount_release)
@@ -906,7 +917,7 @@ TEST_F(DatabaseFixture, Listen_getCount_release)
auto getReleaseListenCount{ [&]
{
auto transaction{ session.createReadTransaction() };
- return Listen::getCount(session, user->getId(), ScrobblingBackend::Internal, release.getId());
+ return Listen::getCount(session, user->getId(), release.getId());
} };
EXPECT_EQ(getReleaseListenCount(), 0);
@@ -936,6 +947,12 @@ TEST_F(DatabaseFixture, Listen_getCount_release)
ScopedListen listen4{ session, user.lockAndGet(), track1.lockAndGet(), ScrobblingBackend::Internal, dateTime1 };
EXPECT_EQ(getReleaseListenCount(), 2);
+
+ {
+ auto transaction{ session.createWriteTransaction() };
+ user.get().modify()->setScrobblingBackend(ScrobblingBackend::ListenBrainz);
+ }
+ EXPECT_EQ(getReleaseListenCount(), 0);
}
TEST_F(DatabaseFixture, Listen_getMostRecentTrack)
diff --git a/src/libs/services/database/test/Release.cpp b/src/libs/database/test/Release.cpp
similarity index 100%
rename from src/libs/services/database/test/Release.cpp
rename to src/libs/database/test/Release.cpp
diff --git a/src/libs/services/database/test/StarredArtist.cpp b/src/libs/database/test/StarredArtist.cpp
similarity index 99%
rename from src/libs/services/database/test/StarredArtist.cpp
rename to src/libs/database/test/StarredArtist.cpp
index 7e173d2f..a21c9a4b 100644
--- a/src/libs/services/database/test/StarredArtist.cpp
+++ b/src/libs/database/test/StarredArtist.cpp
@@ -18,7 +18,7 @@
*/
#include "Common.hpp"
-#include "services/database/StarredArtist.hpp"
+#include "database/StarredArtist.hpp"
using namespace Database;
diff --git a/src/libs/services/database/test/StarredRelease.cpp b/src/libs/database/test/StarredRelease.cpp
similarity index 99%
rename from src/libs/services/database/test/StarredRelease.cpp
rename to src/libs/database/test/StarredRelease.cpp
index 181778f6..b940b4be 100644
--- a/src/libs/services/database/test/StarredRelease.cpp
+++ b/src/libs/database/test/StarredRelease.cpp
@@ -18,7 +18,7 @@
*/
#include "Common.hpp"
-#include "services/database/StarredRelease.hpp"
+#include "database/StarredRelease.hpp"
using namespace Database;
diff --git a/src/libs/services/database/test/StarredTrack.cpp b/src/libs/database/test/StarredTrack.cpp
similarity index 99%
rename from src/libs/services/database/test/StarredTrack.cpp
rename to src/libs/database/test/StarredTrack.cpp
index 0bab5a60..cba2f026 100644
--- a/src/libs/services/database/test/StarredTrack.cpp
+++ b/src/libs/database/test/StarredTrack.cpp
@@ -18,7 +18,7 @@
*/
#include "Common.hpp"
-#include "services/database/StarredTrack.hpp"
+#include "database/StarredTrack.hpp"
using namespace Database;
diff --git a/src/libs/services/database/test/Track.cpp b/src/libs/database/test/Track.cpp
similarity index 100%
rename from src/libs/services/database/test/Track.cpp
rename to src/libs/database/test/Track.cpp
diff --git a/src/libs/services/database/test/TrackBookmark.cpp b/src/libs/database/test/TrackBookmark.cpp
similarity index 97%
rename from src/libs/services/database/test/TrackBookmark.cpp
rename to src/libs/database/test/TrackBookmark.cpp
index ed904bfa..ddcae560 100644
--- a/src/libs/services/database/test/TrackBookmark.cpp
+++ b/src/libs/database/test/TrackBookmark.cpp
@@ -19,7 +19,7 @@
#include "Common.hpp"
-#include "services/database/TrackBookmark.hpp"
+#include "database/TrackBookmark.hpp"
using ScopedTrackBookmark = ScopedEntity;
diff --git a/src/libs/services/database/test/TrackFeatures.cpp b/src/libs/database/test/TrackFeatures.cpp
similarity index 96%
rename from src/libs/services/database/test/TrackFeatures.cpp
rename to src/libs/database/test/TrackFeatures.cpp
index 552ada13..6dce37f0 100644
--- a/src/libs/services/database/test/TrackFeatures.cpp
+++ b/src/libs/database/test/TrackFeatures.cpp
@@ -19,7 +19,7 @@
#include "Common.hpp"
-#include "services/database/TrackFeatures.hpp"
+#include "database/TrackFeatures.hpp"
using ScopedTrackFeatures = ScopedEntity;
diff --git a/src/libs/services/database/test/TrackList.cpp b/src/libs/database/test/TrackList.cpp
similarity index 100%
rename from src/libs/services/database/test/TrackList.cpp
rename to src/libs/database/test/TrackList.cpp
diff --git a/src/libs/services/CMakeLists.txt b/src/libs/services/CMakeLists.txt
index 70f360ed..b8bfa254 100644
--- a/src/libs/services/CMakeLists.txt
+++ b/src/libs/services/CMakeLists.txt
@@ -1,6 +1,5 @@
add_subdirectory(auth)
add_subdirectory(cover)
-add_subdirectory(database)
add_subdirectory(feedback)
add_subdirectory(recommendation)
add_subdirectory(scanner)
diff --git a/src/libs/services/auth/impl/AuthServiceBase.cpp b/src/libs/services/auth/impl/AuthServiceBase.cpp
index 657b54e8..2a1334a2 100644
--- a/src/libs/services/auth/impl/AuthServiceBase.cpp
+++ b/src/libs/services/auth/impl/AuthServiceBase.cpp
@@ -19,9 +19,9 @@
#include "AuthServiceBase.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/ILogger.hpp"
namespace Auth
diff --git a/src/libs/services/auth/impl/AuthServiceBase.hpp b/src/libs/services/auth/impl/AuthServiceBase.hpp
index 50879896..ee372c7b 100644
--- a/src/libs/services/auth/impl/AuthServiceBase.hpp
+++ b/src/libs/services/auth/impl/AuthServiceBase.hpp
@@ -20,7 +20,7 @@
#pragma once
#include
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
namespace Database
{
diff --git a/src/libs/services/auth/impl/AuthTokenService.cpp b/src/libs/services/auth/impl/AuthTokenService.cpp
index 36bb0ce1..86575837 100644
--- a/src/libs/services/auth/impl/AuthTokenService.cpp
+++ b/src/libs/services/auth/impl/AuthTokenService.cpp
@@ -24,9 +24,9 @@
#include
#include "services/auth/Types.hpp"
-#include "services/database/AuthToken.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/AuthToken.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/auth/impl/PasswordServiceBase.cpp b/src/libs/services/auth/impl/PasswordServiceBase.cpp
index bdd75af5..da81b6f1 100644
--- a/src/libs/services/auth/impl/PasswordServiceBase.cpp
+++ b/src/libs/services/auth/impl/PasswordServiceBase.cpp
@@ -28,8 +28,8 @@
#endif // LMS_SUPPORT_PAM
#include "services/auth/Types.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/auth/impl/internal/InternalPasswordService.cpp b/src/libs/services/auth/impl/internal/InternalPasswordService.cpp
index 5387b29d..961aafe6 100644
--- a/src/libs/services/auth/impl/internal/InternalPasswordService.cpp
+++ b/src/libs/services/auth/impl/internal/InternalPasswordService.cpp
@@ -22,8 +22,8 @@
#include "services/auth/IAuthTokenService.hpp"
#include "services/auth/Types.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/auth/impl/internal/InternalPasswordService.hpp b/src/libs/services/auth/impl/internal/InternalPasswordService.hpp
index 7754953a..6c241f31 100644
--- a/src/libs/services/auth/impl/internal/InternalPasswordService.hpp
+++ b/src/libs/services/auth/impl/internal/InternalPasswordService.hpp
@@ -22,7 +22,7 @@
#include
#include
-#include "services/database/User.hpp"
+#include "database/User.hpp"
#include "PasswordServiceBase.hpp"
#include "LoginThrottler.hpp"
diff --git a/src/libs/services/auth/impl/pam/PAMPasswordService.cpp b/src/libs/services/auth/impl/pam/PAMPasswordService.cpp
index 991e8545..2f889b78 100644
--- a/src/libs/services/auth/impl/pam/PAMPasswordService.cpp
+++ b/src/libs/services/auth/impl/pam/PAMPasswordService.cpp
@@ -27,7 +27,7 @@
#include
#include "services/auth/Types.hpp"
-#include "services/database/Session.hpp"
+#include "database/Session.hpp"
#include "utils/ILogger.hpp"
namespace Auth
diff --git a/src/libs/services/auth/include/services/auth/IAuthTokenService.hpp b/src/libs/services/auth/include/services/auth/IAuthTokenService.hpp
index bd5754de..12f98593 100644
--- a/src/libs/services/auth/include/services/auth/IAuthTokenService.hpp
+++ b/src/libs/services/auth/include/services/auth/IAuthTokenService.hpp
@@ -27,7 +27,7 @@
#include
#include
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
namespace Database
{
diff --git a/src/libs/services/auth/include/services/auth/IEnvService.hpp b/src/libs/services/auth/include/services/auth/IEnvService.hpp
index ad9dda2c..cb1a05ab 100644
--- a/src/libs/services/auth/include/services/auth/IEnvService.hpp
+++ b/src/libs/services/auth/include/services/auth/IEnvService.hpp
@@ -22,7 +22,7 @@
#include
#include
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
namespace Database
{
diff --git a/src/libs/services/auth/include/services/auth/IPasswordService.hpp b/src/libs/services/auth/include/services/auth/IPasswordService.hpp
index f2449420..0b5046e4 100644
--- a/src/libs/services/auth/include/services/auth/IPasswordService.hpp
+++ b/src/libs/services/auth/include/services/auth/IPasswordService.hpp
@@ -27,7 +27,7 @@
#include
#include "services/auth/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
namespace Database
{
diff --git a/src/libs/services/auth/include/services/auth/Types.hpp b/src/libs/services/auth/include/services/auth/Types.hpp
index df470746..8b97df6e 100644
--- a/src/libs/services/auth/include/services/auth/Types.hpp
+++ b/src/libs/services/auth/include/services/auth/Types.hpp
@@ -20,7 +20,7 @@
#pragma once
#include
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
#include "utils/Exception.hpp"
namespace Auth
diff --git a/src/libs/services/cover/impl/CoverService.cpp b/src/libs/services/cover/impl/CoverService.cpp
index 0560c66b..14bb4f99 100644
--- a/src/libs/services/cover/impl/CoverService.cpp
+++ b/src/libs/services/cover/impl/CoverService.cpp
@@ -21,10 +21,10 @@
#include "av/IAudioFile.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "image/Exception.hpp"
#include "image/IRawImage.hpp"
diff --git a/src/libs/services/cover/impl/CoverService.hpp b/src/libs/services/cover/impl/CoverService.hpp
index dd5b82c5..248245f7 100644
--- a/src/libs/services/cover/impl/CoverService.hpp
+++ b/src/libs/services/cover/impl/CoverService.hpp
@@ -31,7 +31,7 @@
#include "services/cover/ICoverService.hpp"
#include "image/IEncodedImage.hpp"
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
namespace Database
{
diff --git a/src/libs/services/cover/include/services/cover/ICoverService.hpp b/src/libs/services/cover/include/services/cover/ICoverService.hpp
index 7ce4a2df..abe35fee 100644
--- a/src/libs/services/cover/include/services/cover/ICoverService.hpp
+++ b/src/libs/services/cover/include/services/cover/ICoverService.hpp
@@ -22,8 +22,8 @@
#include
#include
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
#include "image/IEncodedImage.hpp"
namespace Database
diff --git a/src/libs/services/feedback/impl/FeedbackService.cpp b/src/libs/services/feedback/impl/FeedbackService.cpp
index 9b0993de..5d10069e 100644
--- a/src/libs/services/feedback/impl/FeedbackService.cpp
+++ b/src/libs/services/feedback/impl/FeedbackService.cpp
@@ -20,15 +20,15 @@
#include "FeedbackService.hpp"
#include "FeedbackService.impl.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/StarredArtist.hpp"
-#include "services/database/StarredRelease.hpp"
-#include "services/database/StarredTrack.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/StarredArtist.hpp"
+#include "database/StarredRelease.hpp"
+#include "database/StarredTrack.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "internal/InternalBackend.hpp"
diff --git a/src/libs/services/feedback/impl/FeedbackService.impl.hpp b/src/libs/services/feedback/impl/FeedbackService.impl.hpp
index 93ab8583..96afbe94 100644
--- a/src/libs/services/feedback/impl/FeedbackService.impl.hpp
+++ b/src/libs/services/feedback/impl/FeedbackService.impl.hpp
@@ -19,9 +19,9 @@
#pragma once
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
namespace Feedback
{
diff --git a/src/libs/services/feedback/impl/IFeedbackBackend.hpp b/src/libs/services/feedback/impl/IFeedbackBackend.hpp
index 1fe5ab24..ffb6bf4b 100644
--- a/src/libs/services/feedback/impl/IFeedbackBackend.hpp
+++ b/src/libs/services/feedback/impl/IFeedbackBackend.hpp
@@ -19,9 +19,9 @@
#pragma once
-#include "services/database/StarredArtistId.hpp"
-#include "services/database/StarredReleaseId.hpp"
-#include "services/database/StarredTrackId.hpp"
+#include "database/StarredArtistId.hpp"
+#include "database/StarredReleaseId.hpp"
+#include "database/StarredTrackId.hpp"
namespace Feedback
{
diff --git a/src/libs/services/feedback/impl/internal/InternalBackend.cpp b/src/libs/services/feedback/impl/internal/InternalBackend.cpp
index 0c2582a9..473328c1 100644
--- a/src/libs/services/feedback/impl/internal/InternalBackend.cpp
+++ b/src/libs/services/feedback/impl/internal/InternalBackend.cpp
@@ -19,11 +19,11 @@
#include "InternalBackend.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/StarredArtist.hpp"
-#include "services/database/StarredRelease.hpp"
-#include "services/database/StarredTrack.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/StarredArtist.hpp"
+#include "database/StarredRelease.hpp"
+#include "database/StarredTrack.hpp"
namespace Feedback
{
diff --git a/src/libs/services/feedback/impl/listenbrainz/FeedbacksSynchronizer.cpp b/src/libs/services/feedback/impl/listenbrainz/FeedbacksSynchronizer.cpp
index d1cf0e0e..68842f6f 100644
--- a/src/libs/services/feedback/impl/listenbrainz/FeedbacksSynchronizer.cpp
+++ b/src/libs/services/feedback/impl/listenbrainz/FeedbacksSynchronizer.cpp
@@ -25,11 +25,11 @@
#include
#include
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/StarredTrack.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/StarredTrack.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "utils/IConfig.hpp"
#include "utils/http/IClient.hpp"
#include "utils/Service.hpp"
diff --git a/src/libs/services/feedback/impl/listenbrainz/FeedbacksSynchronizer.hpp b/src/libs/services/feedback/impl/listenbrainz/FeedbacksSynchronizer.hpp
index bbc2bfec..32ad572b 100644
--- a/src/libs/services/feedback/impl/listenbrainz/FeedbacksSynchronizer.hpp
+++ b/src/libs/services/feedback/impl/listenbrainz/FeedbacksSynchronizer.hpp
@@ -25,9 +25,9 @@
#include
#include
-#include "services/database/Types.hpp"
-#include "services/database/StarredTrackId.hpp"
-#include "services/database/UserId.hpp"
+#include "database/Types.hpp"
+#include "database/StarredTrackId.hpp"
+#include "database/UserId.hpp"
#include "FeedbackTypes.hpp"
diff --git a/src/libs/services/feedback/impl/listenbrainz/ListenBrainzBackend.cpp b/src/libs/services/feedback/impl/listenbrainz/ListenBrainzBackend.cpp
index aa559b66..f5fdd2fc 100644
--- a/src/libs/services/feedback/impl/listenbrainz/ListenBrainzBackend.cpp
+++ b/src/libs/services/feedback/impl/listenbrainz/ListenBrainzBackend.cpp
@@ -19,11 +19,11 @@
#include "ListenBrainzBackend.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/StarredArtist.hpp"
-#include "services/database/StarredRelease.hpp"
-#include "services/database/Track.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/StarredArtist.hpp"
+#include "database/StarredRelease.hpp"
+#include "database/Track.hpp"
#include "utils/IConfig.hpp"
#include "utils/http/IClient.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/feedback/impl/listenbrainz/Utils.cpp b/src/libs/services/feedback/impl/listenbrainz/Utils.cpp
index 1824f3b7..f512087d 100644
--- a/src/libs/services/feedback/impl/listenbrainz/Utils.cpp
+++ b/src/libs/services/feedback/impl/listenbrainz/Utils.cpp
@@ -22,8 +22,8 @@
#include
#include
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
namespace Feedback::ListenBrainz::Utils
{
diff --git a/src/libs/services/feedback/impl/listenbrainz/Utils.hpp b/src/libs/services/feedback/impl/listenbrainz/Utils.hpp
index 02edaccc..ea8f5eaa 100644
--- a/src/libs/services/feedback/impl/listenbrainz/Utils.hpp
+++ b/src/libs/services/feedback/impl/listenbrainz/Utils.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
#include "utils/ILogger.hpp"
#include "utils/UUID.hpp"
diff --git a/src/libs/services/feedback/include/services/feedback/IFeedbackService.hpp b/src/libs/services/feedback/include/services/feedback/IFeedbackService.hpp
index 05ed487f..1c9ac073 100644
--- a/src/libs/services/feedback/include/services/feedback/IFeedbackService.hpp
+++ b/src/libs/services/feedback/include/services/feedback/IFeedbackService.hpp
@@ -24,13 +24,13 @@
#include
#include
-#include "services/database/Types.hpp"
-#include "services/database/ArtistId.hpp"
-#include "services/database/ClusterId.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/UserId.hpp"
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ClusterId.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
+#include "database/UserId.hpp"
+#include "database/Types.hpp"
namespace Database
{
diff --git a/src/libs/services/recommendation/impl/IEngine.hpp b/src/libs/services/recommendation/impl/IEngine.hpp
index 789ef7cf..1735dd95 100644
--- a/src/libs/services/recommendation/impl/IEngine.hpp
+++ b/src/libs/services/recommendation/impl/IEngine.hpp
@@ -20,8 +20,8 @@
#pragma once
#include
-#include "services/database/Types.hpp"
-#include "services/database/TrackListId.hpp"
+#include "database/Types.hpp"
+#include "database/TrackListId.hpp"
#include "services/recommendation/Types.hpp"
#include "utils/EnumSet.hpp"
diff --git a/src/libs/services/recommendation/impl/PlaylistGeneratorService.cpp b/src/libs/services/recommendation/impl/PlaylistGeneratorService.cpp
index 8792c464..419d68d8 100644
--- a/src/libs/services/recommendation/impl/PlaylistGeneratorService.cpp
+++ b/src/libs/services/recommendation/impl/PlaylistGeneratorService.cpp
@@ -19,9 +19,9 @@
#include "PlaylistGeneratorService.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "services/recommendation/IRecommendationService.hpp"
#include "playlist-constraints/ConsecutiveArtists.hpp"
#include "playlist-constraints/ConsecutiveReleases.hpp"
diff --git a/src/libs/services/recommendation/impl/RecommendationService.cpp b/src/libs/services/recommendation/impl/RecommendationService.cpp
index 267f1233..12fe6150 100644
--- a/src/libs/services/recommendation/impl/RecommendationService.cpp
+++ b/src/libs/services/recommendation/impl/RecommendationService.cpp
@@ -25,9 +25,9 @@
#include "ClustersEngineCreator.hpp"
#include "FeaturesEngineCreator.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/ScanSettings.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/ScanSettings.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/recommendation/impl/clusters/ClustersEngine.cpp b/src/libs/services/recommendation/impl/clusters/ClustersEngine.cpp
index a35faf7a..504fc7f5 100644
--- a/src/libs/services/recommendation/impl/clusters/ClustersEngine.cpp
+++ b/src/libs/services/recommendation/impl/clusters/ClustersEngine.cpp
@@ -19,13 +19,13 @@
#include "ClustersEngine.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackList.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/TrackList.hpp"
namespace Recommendation {
diff --git a/src/libs/services/recommendation/impl/features/FeaturesEngine.cpp b/src/libs/services/recommendation/impl/features/FeaturesEngine.cpp
index a6bcd40a..cf82b13e 100644
--- a/src/libs/services/recommendation/impl/features/FeaturesEngine.cpp
+++ b/src/libs/services/recommendation/impl/features/FeaturesEngine.cpp
@@ -21,14 +21,14 @@
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackArtistLink.hpp"
-#include "services/database/TrackFeatures.hpp"
-#include "services/database/TrackList.hpp"
+#include "database/Artist.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/TrackArtistLink.hpp"
+#include "database/TrackFeatures.hpp"
+#include "database/TrackList.hpp"
#include "som/DataNormalizer.hpp"
#include "utils/ILogger.hpp"
#include "utils/Random.hpp"
diff --git a/src/libs/services/recommendation/impl/features/FeaturesEngineCache.hpp b/src/libs/services/recommendation/impl/features/FeaturesEngineCache.hpp
index a27712db..c545ebef 100644
--- a/src/libs/services/recommendation/impl/features/FeaturesEngineCache.hpp
+++ b/src/libs/services/recommendation/impl/features/FeaturesEngineCache.hpp
@@ -22,7 +22,7 @@
#include
#include
-#include "services/database/TrackId.hpp"
+#include "database/TrackId.hpp"
#include "som/Network.hpp"
namespace Recommendation {
diff --git a/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveArtists.cpp b/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveArtists.cpp
index a7388a6e..b0207491 100644
--- a/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveArtists.cpp
+++ b/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveArtists.cpp
@@ -21,10 +21,10 @@
#include
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "utils/ILogger.hpp"
namespace Recommendation::PlaylistGeneratorConstraint
diff --git a/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveArtists.hpp b/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveArtists.hpp
index 34bcd0ab..f4593f18 100644
--- a/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveArtists.hpp
+++ b/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveArtists.hpp
@@ -21,7 +21,7 @@
#include "IConstraint.hpp"
-#include "services/database/ReleaseId.hpp"
+#include "database/ReleaseId.hpp"
namespace Database
{
diff --git a/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveReleases.cpp b/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveReleases.cpp
index 80bc45f7..1cf54dfb 100644
--- a/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveReleases.cpp
+++ b/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveReleases.cpp
@@ -19,10 +19,10 @@
#include "ConsecutiveReleases.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "utils/ILogger.hpp"
namespace Recommendation::PlaylistGeneratorConstraint
diff --git a/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveReleases.hpp b/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveReleases.hpp
index 3ce4922a..095ffc8d 100644
--- a/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveReleases.hpp
+++ b/src/libs/services/recommendation/impl/playlist-constraints/ConsecutiveReleases.hpp
@@ -21,7 +21,7 @@
#include "IConstraint.hpp"
-#include "services/database/ReleaseId.hpp"
+#include "database/ReleaseId.hpp"
namespace Database
{
diff --git a/src/libs/services/recommendation/include/services/recommendation/IPlaylistGeneratorService.hpp b/src/libs/services/recommendation/include/services/recommendation/IPlaylistGeneratorService.hpp
index cabefa50..3304f2c8 100644
--- a/src/libs/services/recommendation/include/services/recommendation/IPlaylistGeneratorService.hpp
+++ b/src/libs/services/recommendation/include/services/recommendation/IPlaylistGeneratorService.hpp
@@ -20,8 +20,8 @@
#pragma once
#include
-#include "services/database/TrackListId.hpp"
-#include "services/database/Types.hpp"
+#include "database/TrackListId.hpp"
+#include "database/Types.hpp"
#include "services/recommendation/Types.hpp"
namespace Database
diff --git a/src/libs/services/recommendation/include/services/recommendation/IRecommendationService.hpp b/src/libs/services/recommendation/include/services/recommendation/IRecommendationService.hpp
index 7643d775..2bd70f72 100644
--- a/src/libs/services/recommendation/include/services/recommendation/IRecommendationService.hpp
+++ b/src/libs/services/recommendation/include/services/recommendation/IRecommendationService.hpp
@@ -22,8 +22,8 @@
#include
#include
#include "utils/EnumSet.hpp"
-#include "services/database/TrackListId.hpp"
-#include "services/database/Types.hpp"
+#include "database/TrackListId.hpp"
+#include "database/Types.hpp"
#include "services/recommendation/Types.hpp"
namespace Database
diff --git a/src/libs/services/recommendation/include/services/recommendation/Types.hpp b/src/libs/services/recommendation/include/services/recommendation/Types.hpp
index bfdaa67f..7cfebeb1 100644
--- a/src/libs/services/recommendation/include/services/recommendation/Types.hpp
+++ b/src/libs/services/recommendation/include/services/recommendation/Types.hpp
@@ -1,9 +1,9 @@
#pragma once
#include
-#include "services/database/ArtistId.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
namespace Recommendation
{
diff --git a/src/libs/services/scanner/impl/ScanStepCheckDuplicatedDbFiles.cpp b/src/libs/services/scanner/impl/ScanStepCheckDuplicatedDbFiles.cpp
index 59641345..dd54f90c 100644
--- a/src/libs/services/scanner/impl/ScanStepCheckDuplicatedDbFiles.cpp
+++ b/src/libs/services/scanner/impl/ScanStepCheckDuplicatedDbFiles.cpp
@@ -19,9 +19,9 @@
#include "ScanStepCheckDuplicatedDbFiles.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "utils/ILogger.hpp"
namespace Scanner
diff --git a/src/libs/services/scanner/impl/ScanStepComputeClusterStats.cpp b/src/libs/services/scanner/impl/ScanStepComputeClusterStats.cpp
index 7b7daf0a..b6944f61 100644
--- a/src/libs/services/scanner/impl/ScanStepComputeClusterStats.cpp
+++ b/src/libs/services/scanner/impl/ScanStepComputeClusterStats.cpp
@@ -18,9 +18,9 @@
*/
#include "ScanStepComputeClusterStats.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Session.hpp"
+#include "database/Db.hpp"
+#include "database/Cluster.hpp"
+#include "database/Session.hpp"
#include "utils/ILogger.hpp"
#include "utils/Path.hpp"
diff --git a/src/libs/services/scanner/impl/ScanStepRemoveOrphanDbFiles.cpp b/src/libs/services/scanner/impl/ScanStepRemoveOrphanDbFiles.cpp
index 530f8532..b6f1f2c9 100644
--- a/src/libs/services/scanner/impl/ScanStepRemoveOrphanDbFiles.cpp
+++ b/src/libs/services/scanner/impl/ScanStepRemoveOrphanDbFiles.cpp
@@ -19,12 +19,12 @@
#include "ScanStepRemoveOrphanDbFiles.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "utils/ILogger.hpp"
#include "utils/Path.hpp"
diff --git a/src/libs/services/scanner/impl/ScanStepScanFiles.cpp b/src/libs/services/scanner/impl/ScanStepScanFiles.cpp
index 90ab509d..28e500bc 100644
--- a/src/libs/services/scanner/impl/ScanStepScanFiles.cpp
+++ b/src/libs/services/scanner/impl/ScanStepScanFiles.cpp
@@ -20,14 +20,14 @@
#include "ScanStepScanFiles.hpp"
#include "metadata/IParser.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackFeatures.hpp"
-#include "services/database/TrackArtistLink.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/TrackFeatures.hpp"
+#include "database/TrackArtistLink.hpp"
#include "utils/Exception.hpp"
#include "utils/IConfig.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/scanner/impl/ScannerService.cpp b/src/libs/services/scanner/impl/ScannerService.cpp
index e882c165..773c082f 100644
--- a/src/libs/services/scanner/impl/ScannerService.cpp
+++ b/src/libs/services/scanner/impl/ScannerService.cpp
@@ -22,9 +22,9 @@
#include
#include
-#include "services/database/Cluster.hpp"
-#include "services/database/TrackFeatures.hpp"
-#include "services/database/ScanSettings.hpp"
+#include "database/Cluster.hpp"
+#include "database/TrackFeatures.hpp"
+#include "database/ScanSettings.hpp"
#include "utils/Exception.hpp"
#include "utils/IConfig.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/scanner/impl/ScannerService.hpp b/src/libs/services/scanner/impl/ScannerService.hpp
index 02493a5c..76f8fd71 100644
--- a/src/libs/services/scanner/impl/ScannerService.hpp
+++ b/src/libs/services/scanner/impl/ScannerService.hpp
@@ -30,9 +30,9 @@
#include
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Types.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/Types.hpp"
#include "services/scanner/IScannerService.hpp"
#include "utils/Path.hpp"
#include "IScanStep.hpp"
diff --git a/src/libs/services/scanner/impl/ScannerSettings.hpp b/src/libs/services/scanner/impl/ScannerSettings.hpp
index 0d347edf..eac1bb52 100644
--- a/src/libs/services/scanner/impl/ScannerSettings.hpp
+++ b/src/libs/services/scanner/impl/ScannerSettings.hpp
@@ -23,7 +23,7 @@
#include
#include
#include
-#include "services/database/ScanSettings.hpp"
+#include "database/ScanSettings.hpp"
namespace Scanner
{
diff --git a/src/libs/services/scanner/include/services/scanner/ScannerStats.hpp b/src/libs/services/scanner/include/services/scanner/ScannerStats.hpp
index e439f7a0..62c25ef8 100644
--- a/src/libs/services/scanner/include/services/scanner/ScannerStats.hpp
+++ b/src/libs/services/scanner/include/services/scanner/ScannerStats.hpp
@@ -24,7 +24,7 @@
#include
#include
-#include "services/database/TrackId.hpp"
+#include "database/TrackId.hpp"
namespace Scanner
{
diff --git a/src/libs/services/scrobbling/impl/ScrobblingService.cpp b/src/libs/services/scrobbling/impl/ScrobblingService.cpp
index 65b8a32b..2770b045 100644
--- a/src/libs/services/scrobbling/impl/ScrobblingService.cpp
+++ b/src/libs/services/scrobbling/impl/ScrobblingService.cpp
@@ -19,13 +19,13 @@
#include "ScrobblingService.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Listen.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Db.hpp"
+#include "database/Listen.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "internal/InternalBackend.hpp"
@@ -129,6 +129,20 @@ namespace Scrobbling
return res;
}
+ std::size_t ScrobblingService::getCount(Database::UserId userId, Database::ReleaseId releaseId)
+ {
+ Session& session{ _db.getTLSSession() };
+ auto transaction{ session.createReadTransaction() };
+ return Database::Listen::getCount(session, userId, releaseId);
+ }
+
+ std::size_t ScrobblingService::getCount(Database::UserId userId, Database::TrackId trackId)
+ {
+ Session& session{ _db.getTLSSession() };
+ auto transaction{ session.createReadTransaction() };
+ return Database::Listen::getCount(session, userId, trackId);
+ }
+
Wt::WDateTime ScrobblingService::getLastListenDateTime(Database::UserId userId, Database::ReleaseId releaseId)
{
const auto backend{ getUserBackend(userId) };
diff --git a/src/libs/services/scrobbling/impl/ScrobblingService.hpp b/src/libs/services/scrobbling/impl/ScrobblingService.hpp
index 53926120..667897f7 100644
--- a/src/libs/services/scrobbling/impl/ScrobblingService.hpp
+++ b/src/libs/services/scrobbling/impl/ScrobblingService.hpp
@@ -43,6 +43,9 @@ namespace Scrobbling
ReleaseContainer getRecentReleases(Database::UserId userId, const std::vector& clusterIds,Database::Range range) override;
TrackContainer getRecentTracks(Database::UserId userId, const std::vector& clusterIds, Database::Range range) override;
+ std::size_t getCount(Database::UserId userId, Database::ReleaseId releaseId) override;
+ std::size_t getCount(Database::UserId userId, Database::TrackId trackId) override;
+
Wt::WDateTime getLastListenDateTime(Database::UserId userId, Database::ReleaseId releaseId) override;
Wt::WDateTime getLastListenDateTime(Database::UserId userId, Database::TrackId trackId) override;
diff --git a/src/libs/services/scrobbling/impl/internal/InternalBackend.cpp b/src/libs/services/scrobbling/impl/internal/InternalBackend.cpp
index cf30a551..81696458 100644
--- a/src/libs/services/scrobbling/impl/internal/InternalBackend.cpp
+++ b/src/libs/services/scrobbling/impl/internal/InternalBackend.cpp
@@ -19,11 +19,11 @@
#include "InternalBackend.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Listen.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Db.hpp"
+#include "database/Listen.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
namespace Scrobbling
{
diff --git a/src/libs/services/scrobbling/impl/listenbrainz/ListenBrainzBackend.cpp b/src/libs/services/scrobbling/impl/listenbrainz/ListenBrainzBackend.cpp
index 92e4701a..ead18109 100644
--- a/src/libs/services/scrobbling/impl/listenbrainz/ListenBrainzBackend.cpp
+++ b/src/libs/services/scrobbling/impl/listenbrainz/ListenBrainzBackend.cpp
@@ -19,9 +19,9 @@
#include "ListenBrainzBackend.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "utils/IConfig.hpp"
#include "utils/http/IClient.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/services/scrobbling/impl/listenbrainz/ListensSynchronizer.cpp b/src/libs/services/scrobbling/impl/listenbrainz/ListensSynchronizer.cpp
index 8960dd2b..db776aa9 100644
--- a/src/libs/services/scrobbling/impl/listenbrainz/ListensSynchronizer.cpp
+++ b/src/libs/services/scrobbling/impl/listenbrainz/ListensSynchronizer.cpp
@@ -25,13 +25,13 @@
#include
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Listen.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Db.hpp"
+#include "database/Listen.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "services/scrobbling/Exception.hpp"
#include "utils/IConfig.hpp"
#include "utils/http/IClient.hpp"
diff --git a/src/libs/services/scrobbling/impl/listenbrainz/ListensSynchronizer.hpp b/src/libs/services/scrobbling/impl/listenbrainz/ListensSynchronizer.hpp
index 24686076..e9a6ffd1 100644
--- a/src/libs/services/scrobbling/impl/listenbrainz/ListensSynchronizer.hpp
+++ b/src/libs/services/scrobbling/impl/listenbrainz/ListensSynchronizer.hpp
@@ -25,8 +25,8 @@
#include
#include
-#include "services/database/Types.hpp"
-#include "services/database/UserId.hpp"
+#include "database/Types.hpp"
+#include "database/UserId.hpp"
#include "services/scrobbling/Listen.hpp"
diff --git a/src/libs/services/scrobbling/impl/listenbrainz/Utils.cpp b/src/libs/services/scrobbling/impl/listenbrainz/Utils.cpp
index 8c215d3d..8c98575d 100644
--- a/src/libs/services/scrobbling/impl/listenbrainz/Utils.cpp
+++ b/src/libs/services/scrobbling/impl/listenbrainz/Utils.cpp
@@ -22,8 +22,8 @@
#include
#include
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
namespace Scrobbling::ListenBrainz::Utils
{
diff --git a/src/libs/services/scrobbling/impl/listenbrainz/Utils.hpp b/src/libs/services/scrobbling/impl/listenbrainz/Utils.hpp
index 805d65a2..1b475477 100644
--- a/src/libs/services/scrobbling/impl/listenbrainz/Utils.hpp
+++ b/src/libs/services/scrobbling/impl/listenbrainz/Utils.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
#include "utils/ILogger.hpp"
#include "utils/UUID.hpp"
diff --git a/src/libs/services/scrobbling/include/services/scrobbling/IScrobblingService.hpp b/src/libs/services/scrobbling/include/services/scrobbling/IScrobblingService.hpp
index fcabbdb6..892d9ee8 100644
--- a/src/libs/services/scrobbling/include/services/scrobbling/IScrobblingService.hpp
+++ b/src/libs/services/scrobbling/include/services/scrobbling/IScrobblingService.hpp
@@ -26,11 +26,11 @@
#include
#include "services/scrobbling/Listen.hpp"
-#include "services/database/ArtistId.hpp"
-#include "services/database/ClusterId.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/Types.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ClusterId.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
+#include "database/Types.hpp"
namespace Database
{
@@ -61,6 +61,9 @@ namespace Scrobbling
virtual ReleaseContainer getRecentReleases(Database::UserId userId, const std::vector& clusterIds, Database::Range range) = 0;
virtual TrackContainer getRecentTracks(Database::UserId userId, const std::vector& clusterIds, Database::Range range) = 0;
+ virtual std::size_t getCount(Database::UserId userId, Database::ReleaseId releaseId) = 0;
+ virtual std::size_t getCount(Database::UserId userId, Database::TrackId trackId) = 0;
+
virtual Wt::WDateTime getLastListenDateTime(Database::UserId userId, Database::ReleaseId releaseId) = 0;
virtual Wt::WDateTime getLastListenDateTime(Database::UserId userId, Database::TrackId trackId) = 0;
diff --git a/src/libs/services/scrobbling/include/services/scrobbling/Listen.hpp b/src/libs/services/scrobbling/include/services/scrobbling/Listen.hpp
index 3838f1bc..d0c7bba6 100644
--- a/src/libs/services/scrobbling/include/services/scrobbling/Listen.hpp
+++ b/src/libs/services/scrobbling/include/services/scrobbling/Listen.hpp
@@ -21,8 +21,8 @@
#include
-#include "services/database/TrackId.hpp"
-#include "services/database/UserId.hpp"
+#include "database/TrackId.hpp"
+#include "database/UserId.hpp"
namespace Scrobbling
{
diff --git a/src/libs/subsonic/impl/ParameterParsing.hpp b/src/libs/subsonic/impl/ParameterParsing.hpp
index 9197c1b1..bf4a678f 100644
--- a/src/libs/subsonic/impl/ParameterParsing.hpp
+++ b/src/libs/subsonic/impl/ParameterParsing.hpp
@@ -25,7 +25,7 @@
#include
#include
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
#include "utils/String.hpp"
#include "SubsonicResponse.hpp"
diff --git a/src/libs/subsonic/impl/RequestContext.hpp b/src/libs/subsonic/impl/RequestContext.hpp
index 61b23f0a..83ec90d6 100644
--- a/src/libs/subsonic/impl/RequestContext.hpp
+++ b/src/libs/subsonic/impl/RequestContext.hpp
@@ -23,7 +23,7 @@
#include
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
#include "ClientInfo.hpp"
#include "ProtocolVersion.hpp"
diff --git a/src/libs/subsonic/impl/SubsonicId.hpp b/src/libs/subsonic/impl/SubsonicId.hpp
index 40b831bf..3a68e3f2 100644
--- a/src/libs/subsonic/impl/SubsonicId.hpp
+++ b/src/libs/subsonic/impl/SubsonicId.hpp
@@ -19,10 +19,10 @@
#pragma once
-#include "services/database/ArtistId.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/TrackListId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
+#include "database/TrackListId.hpp"
#include "utils/String.hpp"
namespace API::Subsonic
diff --git a/src/libs/subsonic/impl/SubsonicResource.cpp b/src/libs/subsonic/impl/SubsonicResource.cpp
index bcbdd8aa..b472bf78 100644
--- a/src/libs/subsonic/impl/SubsonicResource.cpp
+++ b/src/libs/subsonic/impl/SubsonicResource.cpp
@@ -24,9 +24,9 @@
#include "services/auth/IPasswordService.hpp"
#include "services/auth/IEnvService.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/EnumSet.hpp"
#include "utils/IConfig.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/libs/subsonic/impl/SubsonicResource.hpp b/src/libs/subsonic/impl/SubsonicResource.hpp
index 24c7025a..31377725 100644
--- a/src/libs/subsonic/impl/SubsonicResource.hpp
+++ b/src/libs/subsonic/impl/SubsonicResource.hpp
@@ -25,7 +25,7 @@
#include
#include
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
#include "ClientInfo.hpp"
#include "RequestContext.hpp"
diff --git a/src/libs/subsonic/impl/entrypoints/AlbumSongLists.cpp b/src/libs/subsonic/impl/entrypoints/AlbumSongLists.cpp
index d3b66a63..b493ae72 100644
--- a/src/libs/subsonic/impl/entrypoints/AlbumSongLists.cpp
+++ b/src/libs/subsonic/impl/entrypoints/AlbumSongLists.cpp
@@ -19,12 +19,12 @@
#include "AlbumSongLists.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
#include "responses/Album.hpp"
diff --git a/src/libs/subsonic/impl/entrypoints/Bookmarks.cpp b/src/libs/subsonic/impl/entrypoints/Bookmarks.cpp
index 5980448b..47e2a93d 100644
--- a/src/libs/subsonic/impl/entrypoints/Bookmarks.cpp
+++ b/src/libs/subsonic/impl/entrypoints/Bookmarks.cpp
@@ -19,10 +19,10 @@
#include "Bookmarks.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackBookmark.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
+#include "database/Track.hpp"
+#include "database/TrackBookmark.hpp"
#include "responses/Bookmark.hpp"
#include "responses/Song.hpp"
#include "ParameterParsing.hpp"
diff --git a/src/libs/subsonic/impl/entrypoints/Browsing.cpp b/src/libs/subsonic/impl/entrypoints/Browsing.cpp
index e0e7fc7e..45765597 100644
--- a/src/libs/subsonic/impl/entrypoints/Browsing.cpp
+++ b/src/libs/subsonic/impl/entrypoints/Browsing.cpp
@@ -19,12 +19,12 @@
#include "Browsing.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Session.hpp"
+#include "database/Release.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "services/recommendation/IRecommendationService.hpp"
#include "utils/ILogger.hpp"
#include "utils/Random.hpp"
diff --git a/src/libs/subsonic/impl/entrypoints/MediaAnnotation.cpp b/src/libs/subsonic/impl/entrypoints/MediaAnnotation.cpp
index 2f7d8d6a..198594a7 100644
--- a/src/libs/subsonic/impl/entrypoints/MediaAnnotation.cpp
+++ b/src/libs/subsonic/impl/entrypoints/MediaAnnotation.cpp
@@ -21,9 +21,9 @@
#include
-#include "services/database/ArtistId.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
#include "utils/Service.hpp"
diff --git a/src/libs/subsonic/impl/entrypoints/MediaRetrieval.cpp b/src/libs/subsonic/impl/entrypoints/MediaRetrieval.cpp
index ed00e7b5..464937a7 100644
--- a/src/libs/subsonic/impl/entrypoints/MediaRetrieval.cpp
+++ b/src/libs/subsonic/impl/entrypoints/MediaRetrieval.cpp
@@ -25,9 +25,9 @@
#include "av/TranscodingResourceHandlerCreator.hpp"
#include "av/Types.hpp"
#include "services/cover/ICoverService.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "utils/IResourceHandler.hpp"
#include "utils/ILogger.hpp"
#include "utils/FileResourceHandlerCreator.hpp"
diff --git a/src/libs/subsonic/impl/entrypoints/Playlists.cpp b/src/libs/subsonic/impl/entrypoints/Playlists.cpp
index 7d3307d6..3b9373a7 100644
--- a/src/libs/subsonic/impl/entrypoints/Playlists.cpp
+++ b/src/libs/subsonic/impl/entrypoints/Playlists.cpp
@@ -19,10 +19,10 @@
#include "Playlists.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/TrackList.hpp"
+#include "database/User.hpp"
#include "responses/Playlist.hpp"
#include "responses/Song.hpp"
#include "ParameterParsing.hpp"
diff --git a/src/libs/subsonic/impl/entrypoints/Searching.cpp b/src/libs/subsonic/impl/entrypoints/Searching.cpp
index d613985d..56e75425 100644
--- a/src/libs/subsonic/impl/entrypoints/Searching.cpp
+++ b/src/libs/subsonic/impl/entrypoints/Searching.cpp
@@ -19,11 +19,11 @@
#include "Searching.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "responses/Album.hpp"
#include "responses/Artist.hpp"
#include "responses/Song.hpp"
diff --git a/src/libs/subsonic/impl/entrypoints/UserManagement.cpp b/src/libs/subsonic/impl/entrypoints/UserManagement.cpp
index 254814e9..4547d9d0 100644
--- a/src/libs/subsonic/impl/entrypoints/UserManagement.cpp
+++ b/src/libs/subsonic/impl/entrypoints/UserManagement.cpp
@@ -1,7 +1,7 @@
#include "UserManagement.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "services/auth/IPasswordService.hpp"
#include "utils/Service.hpp"
#include "responses/User.hpp"
diff --git a/src/libs/subsonic/impl/responses/Album.cpp b/src/libs/subsonic/impl/responses/Album.cpp
index 01e2a3fa..b3917c39 100644
--- a/src/libs/subsonic/impl/responses/Album.cpp
+++ b/src/libs/subsonic/impl/responses/Album.cpp
@@ -19,11 +19,10 @@
#include "responses/Album.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Listen.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Release.hpp"
+#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
#include "utils/Service.hpp"
@@ -125,7 +124,7 @@ namespace API::Subsonic
}
}
- albumNode.setAttribute("playCount", Listen::getCount(context.dbSession, user->getId(), user->getScrobblingBackend(), release->getId()));
+ albumNode.setAttribute("playCount", Service::get()->getCount(user->getId(), release->getId()));
// Report the first GENRE for this track
const ClusterType::pointer genreClusterType{ ClusterType::find(context.dbSession, "GENRE") };
diff --git a/src/libs/subsonic/impl/responses/Album.hpp b/src/libs/subsonic/impl/responses/Album.hpp
index ba57f39b..51d92184 100644
--- a/src/libs/subsonic/impl/responses/Album.hpp
+++ b/src/libs/subsonic/impl/responses/Album.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Object.hpp"
+#include "database/Object.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/libs/subsonic/impl/responses/Artist.cpp b/src/libs/subsonic/impl/responses/Artist.cpp
index 54635316..bdd0d374 100644
--- a/src/libs/subsonic/impl/responses/Artist.cpp
+++ b/src/libs/subsonic/impl/responses/Artist.cpp
@@ -19,10 +19,10 @@
#include "responses/Artist.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/TrackArtistLink.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Release.hpp"
+#include "database/TrackArtistLink.hpp"
+#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "utils/Service.hpp"
#include "utils/String.hpp"
diff --git a/src/libs/subsonic/impl/responses/Artist.hpp b/src/libs/subsonic/impl/responses/Artist.hpp
index 1e44eb10..dd33a208 100644
--- a/src/libs/subsonic/impl/responses/Artist.hpp
+++ b/src/libs/subsonic/impl/responses/Artist.hpp
@@ -21,8 +21,8 @@
#include
#include
-#include "services/database/Object.hpp"
-#include "services/database/Types.hpp"
+#include "database/Object.hpp"
+#include "database/Types.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/libs/subsonic/impl/responses/Bookmark.cpp b/src/libs/subsonic/impl/responses/Bookmark.cpp
index f04b1d7c..22394763 100644
--- a/src/libs/subsonic/impl/responses/Bookmark.cpp
+++ b/src/libs/subsonic/impl/responses/Bookmark.cpp
@@ -19,8 +19,8 @@
#include "responses/Bookmark.hpp"
-#include "services/database/TrackBookmark.hpp"
-#include "services/database/User.hpp"
+#include "database/TrackBookmark.hpp"
+#include "database/User.hpp"
namespace API::Subsonic
{
diff --git a/src/libs/subsonic/impl/responses/Bookmark.hpp b/src/libs/subsonic/impl/responses/Bookmark.hpp
index ea36ee41..89f8ad63 100644
--- a/src/libs/subsonic/impl/responses/Bookmark.hpp
+++ b/src/libs/subsonic/impl/responses/Bookmark.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Object.hpp"
+#include "database/Object.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/libs/subsonic/impl/responses/Contributor.cpp b/src/libs/subsonic/impl/responses/Contributor.cpp
index 755b44dd..c3072cd6 100644
--- a/src/libs/subsonic/impl/responses/Contributor.cpp
+++ b/src/libs/subsonic/impl/responses/Contributor.cpp
@@ -19,8 +19,8 @@
#include "responses/Contributor.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/TrackArtistLink.hpp"
+#include "database/Object.hpp"
+#include "database/TrackArtistLink.hpp"
#include "SubsonicResponse.hpp"
#include "responses/Artist.hpp"
diff --git a/src/libs/subsonic/impl/responses/Contributor.hpp b/src/libs/subsonic/impl/responses/Contributor.hpp
index 80a0d0d9..7ceac94a 100644
--- a/src/libs/subsonic/impl/responses/Contributor.hpp
+++ b/src/libs/subsonic/impl/responses/Contributor.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Object.hpp"
+#include "database/Object.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/libs/subsonic/impl/responses/DiscTitle.hpp b/src/libs/subsonic/impl/responses/DiscTitle.hpp
index f9ff1185..748ed4ba 100644
--- a/src/libs/subsonic/impl/responses/DiscTitle.hpp
+++ b/src/libs/subsonic/impl/responses/DiscTitle.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
#include "SubsonicResponse.hpp"
namespace API::Subsonic
diff --git a/src/libs/subsonic/impl/responses/Genre.cpp b/src/libs/subsonic/impl/responses/Genre.cpp
index 05d5ca48..d9bdcedc 100644
--- a/src/libs/subsonic/impl/responses/Genre.cpp
+++ b/src/libs/subsonic/impl/responses/Genre.cpp
@@ -19,7 +19,7 @@
#include "responses/Genre.hpp"
-#include "services/database/Cluster.hpp"
+#include "database/Cluster.hpp"
namespace API::Subsonic
{
diff --git a/src/libs/subsonic/impl/responses/Genre.hpp b/src/libs/subsonic/impl/responses/Genre.hpp
index 6d217304..44dece5a 100644
--- a/src/libs/subsonic/impl/responses/Genre.hpp
+++ b/src/libs/subsonic/impl/responses/Genre.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Object.hpp"
+#include "database/Object.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/libs/subsonic/impl/responses/ItemGenre.cpp b/src/libs/subsonic/impl/responses/ItemGenre.cpp
index 70ab2b9e..7b87a33e 100644
--- a/src/libs/subsonic/impl/responses/ItemGenre.cpp
+++ b/src/libs/subsonic/impl/responses/ItemGenre.cpp
@@ -19,7 +19,7 @@
#include "responses/ItemGenre.hpp"
-#include "services/database/Cluster.hpp"
+#include "database/Cluster.hpp"
namespace API::Subsonic
{
diff --git a/src/libs/subsonic/impl/responses/Playlist.cpp b/src/libs/subsonic/impl/responses/Playlist.cpp
index 9c11d81b..a929d770 100644
--- a/src/libs/subsonic/impl/responses/Playlist.cpp
+++ b/src/libs/subsonic/impl/responses/Playlist.cpp
@@ -19,8 +19,8 @@
#include "Playlist.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/User.hpp"
+#include "database/TrackList.hpp"
+#include "database/User.hpp"
#include "SubsonicId.hpp"
namespace API::Subsonic
diff --git a/src/libs/subsonic/impl/responses/Playlist.hpp b/src/libs/subsonic/impl/responses/Playlist.hpp
index 2085d69c..22d29767 100644
--- a/src/libs/subsonic/impl/responses/Playlist.hpp
+++ b/src/libs/subsonic/impl/responses/Playlist.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Object.hpp"
+#include "database/Object.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/libs/subsonic/impl/responses/ReplayGain.cpp b/src/libs/subsonic/impl/responses/ReplayGain.cpp
index e022a3d8..21324495 100644
--- a/src/libs/subsonic/impl/responses/ReplayGain.cpp
+++ b/src/libs/subsonic/impl/responses/ReplayGain.cpp
@@ -19,7 +19,7 @@
#include "responses/ReplayGain.hpp"
-#include "services/database/Track.hpp"
+#include "database/Track.hpp"
namespace API::Subsonic
{
diff --git a/src/libs/subsonic/impl/responses/ReplayGain.hpp b/src/libs/subsonic/impl/responses/ReplayGain.hpp
index 9d5db182..7a3af898 100644
--- a/src/libs/subsonic/impl/responses/ReplayGain.hpp
+++ b/src/libs/subsonic/impl/responses/ReplayGain.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Object.hpp"
+#include "database/Object.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/libs/subsonic/impl/responses/Song.cpp b/src/libs/subsonic/impl/responses/Song.cpp
index e01e6584..51a959bc 100644
--- a/src/libs/subsonic/impl/responses/Song.cpp
+++ b/src/libs/subsonic/impl/responses/Song.cpp
@@ -22,13 +22,12 @@
#include
#include "av/IAudioFile.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Listen.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackArtistLink.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Release.hpp"
+#include "database/Track.hpp"
+#include "database/TrackArtistLink.hpp"
+#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
#include "utils/Service.hpp"
@@ -108,7 +107,7 @@ namespace API::Subsonic
trackResponse.setAttribute("discNumber", *track->getDiscNumber());
if (track->getYear())
trackResponse.setAttribute("year", *track->getYear());
- trackResponse.setAttribute("playCount", Listen::getCount(context.dbSession, user->getId(), user->getScrobblingBackend(), track->getId()));
+ trackResponse.setAttribute("playCount", Service::get()->getCount(user->getId(), track->getId()));
trackResponse.setAttribute("path", getTrackPath(track));
{
// TODO, store this in DB
diff --git a/src/libs/subsonic/impl/responses/Song.hpp b/src/libs/subsonic/impl/responses/Song.hpp
index acfefdac..dfaf8af3 100644
--- a/src/libs/subsonic/impl/responses/Song.hpp
+++ b/src/libs/subsonic/impl/responses/Song.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Object.hpp"
+#include "database/Object.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/libs/subsonic/impl/responses/User.cpp b/src/libs/subsonic/impl/responses/User.cpp
index 16f3c532..91453fe2 100644
--- a/src/libs/subsonic/impl/responses/User.cpp
+++ b/src/libs/subsonic/impl/responses/User.cpp
@@ -19,7 +19,7 @@
#include "responses/User.hpp"
-#include "services/database/User.hpp"
+#include "database/User.hpp"
namespace API::Subsonic
{
diff --git a/src/libs/subsonic/impl/responses/User.hpp b/src/libs/subsonic/impl/responses/User.hpp
index 8ce1755f..4241d2aa 100644
--- a/src/libs/subsonic/impl/responses/User.hpp
+++ b/src/libs/subsonic/impl/responses/User.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Object.hpp"
+#include "database/Object.hpp"
#include "SubsonicResponse.hpp"
namespace Database
diff --git a/src/lms/main.cpp b/src/lms/main.cpp
index 2db7e143..696bdb94 100644
--- a/src/lms/main.cpp
+++ b/src/lms/main.cpp
@@ -30,8 +30,8 @@
#include "services/auth/IPasswordService.hpp"
#include "services/auth/IEnvService.hpp"
#include "services/cover/ICoverService.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Session.hpp"
+#include "database/Db.hpp"
+#include "database/Session.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/recommendation/IPlaylistGeneratorService.hpp"
#include "services/recommendation/IRecommendationService.hpp"
diff --git a/src/lms/ui/Auth.cpp b/src/lms/ui/Auth.cpp
index 2a536678..53259a8c 100644
--- a/src/lms/ui/Auth.cpp
+++ b/src/lms/ui/Auth.cpp
@@ -30,8 +30,8 @@
#include "services/auth/IAuthTokenService.hpp"
#include "services/auth/IPasswordService.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "utils/Service.hpp"
diff --git a/src/lms/ui/Auth.hpp b/src/lms/ui/Auth.hpp
index 305e9a4d..4463c3af 100644
--- a/src/lms/ui/Auth.hpp
+++ b/src/lms/ui/Auth.hpp
@@ -22,7 +22,7 @@
#include
#include
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
namespace UserInterface
{
diff --git a/src/lms/ui/LmsApplication.cpp b/src/lms/ui/LmsApplication.cpp
index 47bcf481..69d6e510 100644
--- a/src/lms/ui/LmsApplication.cpp
+++ b/src/lms/ui/LmsApplication.cpp
@@ -29,13 +29,13 @@
#include "services/auth/IEnvService.hpp"
#include "services/auth/IPasswordService.hpp"
#include "services/cover/ICoverService.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Db.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Db.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/TrackList.hpp"
+#include "database/User.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
#include "utils/ILogger.hpp"
#include "utils/Service.hpp"
diff --git a/src/lms/ui/LmsApplication.hpp b/src/lms/ui/LmsApplication.hpp
index 8ce00780..f9322b4f 100644
--- a/src/lms/ui/LmsApplication.hpp
+++ b/src/lms/ui/LmsApplication.hpp
@@ -23,9 +23,9 @@
#include
-#include "services/database/Object.hpp"
-#include "services/database/UserId.hpp"
-#include "services/database/Types.hpp"
+#include "database/Object.hpp"
+#include "database/UserId.hpp"
+#include "database/Types.hpp"
#include "services/scanner/ScannerEvents.hpp"
#include "Notification.hpp"
diff --git a/src/lms/ui/LmsApplicationException.hpp b/src/lms/ui/LmsApplicationException.hpp
index f5ef4691..f6239507 100644
--- a/src/lms/ui/LmsApplicationException.hpp
+++ b/src/lms/ui/LmsApplicationException.hpp
@@ -19,7 +19,7 @@
#pragma once
-#include "services/database/Types.hpp"
+#include "database/Types.hpp"
#include "utils/Exception.hpp"
namespace UserInterface
diff --git a/src/lms/ui/LmsApplicationManager.hpp b/src/lms/ui/LmsApplicationManager.hpp
index 5a81aec1..aae40ff5 100644
--- a/src/lms/ui/LmsApplicationManager.hpp
+++ b/src/lms/ui/LmsApplicationManager.hpp
@@ -25,7 +25,7 @@
#include
-#include "services/database/UserId.hpp"
+#include "database/UserId.hpp"
namespace UserInterface
{
diff --git a/src/lms/ui/MediaPlayer.cpp b/src/lms/ui/MediaPlayer.cpp
index 36b22061..1c2891b9 100644
--- a/src/lms/ui/MediaPlayer.cpp
+++ b/src/lms/ui/MediaPlayer.cpp
@@ -26,13 +26,13 @@
#include "utils/ILogger.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/Types.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/TrackList.hpp"
+#include "database/Types.hpp"
+#include "database/User.hpp"
#include "resource/CoverResource.hpp"
#include "resource/AudioTranscodingResource.hpp"
diff --git a/src/lms/ui/MediaPlayer.hpp b/src/lms/ui/MediaPlayer.hpp
index 840398aa..5dd4ab8a 100644
--- a/src/lms/ui/MediaPlayer.hpp
+++ b/src/lms/ui/MediaPlayer.hpp
@@ -27,8 +27,8 @@
#include
#include
-#include "services/database/TrackId.hpp"
-#include "services/database/Types.hpp"
+#include "database/TrackId.hpp"
+#include "database/Types.hpp"
namespace UserInterface
{
diff --git a/src/lms/ui/PlayQueue.cpp b/src/lms/ui/PlayQueue.cpp
index 08f19936..cea94f9e 100644
--- a/src/lms/ui/PlayQueue.cpp
+++ b/src/lms/ui/PlayQueue.cpp
@@ -28,12 +28,12 @@
#include
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Release.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/TrackList.hpp"
+#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/recommendation/IPlaylistGeneratorService.hpp"
#include "utils/IConfig.hpp"
diff --git a/src/lms/ui/PlayQueue.hpp b/src/lms/ui/PlayQueue.hpp
index eda8ce23..07fef7aa 100644
--- a/src/lms/ui/PlayQueue.hpp
+++ b/src/lms/ui/PlayQueue.hpp
@@ -26,9 +26,9 @@
#include
#include
-#include "services/database/Object.hpp"
-#include "services/database/TrackId.hpp"
-#include "services/database/TrackListId.hpp"
+#include "database/Object.hpp"
+#include "database/TrackId.hpp"
+#include "database/TrackListId.hpp"
#include "common/Template.hpp"
diff --git a/src/lms/ui/SettingsView.cpp b/src/lms/ui/SettingsView.cpp
index 3b6e2023..e811859f 100644
--- a/src/lms/ui/SettingsView.cpp
+++ b/src/lms/ui/SettingsView.cpp
@@ -35,8 +35,8 @@
#include "common/ValueStringModel.hpp"
#include "services/auth/IPasswordService.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/IConfig.hpp"
#include "utils/ILogger.hpp"
#include "utils/Service.hpp"
diff --git a/src/lms/ui/Utils.cpp b/src/lms/ui/Utils.cpp
index 98297f7c..eb7111a1 100644
--- a/src/lms/ui/Utils.cpp
+++ b/src/lms/ui/Utils.cpp
@@ -25,13 +25,13 @@
#include
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/ScanSettings.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/TrackList.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Release.hpp"
+#include "database/ScanSettings.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/TrackList.hpp"
#include "explore/Filters.hpp"
#include "LmsApplication.hpp"
diff --git a/src/lms/ui/Utils.hpp b/src/lms/ui/Utils.hpp
index 3a14af09..d3ec08e6 100644
--- a/src/lms/ui/Utils.hpp
+++ b/src/lms/ui/Utils.hpp
@@ -27,11 +27,11 @@
#include
#include
-#include "services/database/ArtistId.hpp"
-#include "services/database/ClusterId.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/ReleaseId.hpp"
-#include "services/database/TrackId.hpp"
+#include "database/ArtistId.hpp"
+#include "database/ClusterId.hpp"
+#include "database/Object.hpp"
+#include "database/ReleaseId.hpp"
+#include "database/TrackId.hpp"
#include "resource/CoverResource.hpp"
diff --git a/src/lms/ui/admin/DatabaseSettingsView.cpp b/src/lms/ui/admin/DatabaseSettingsView.cpp
index 671bb7fc..351722dc 100644
--- a/src/lms/ui/admin/DatabaseSettingsView.cpp
+++ b/src/lms/ui/admin/DatabaseSettingsView.cpp
@@ -26,9 +26,9 @@
#include
#include
-#include "services/database/Cluster.hpp"
-#include "services/database/ScanSettings.hpp"
-#include "services/database/Session.hpp"
+#include "database/Cluster.hpp"
+#include "database/ScanSettings.hpp"
+#include "database/Session.hpp"
#include "services/recommendation/IRecommendationService.hpp"
#include "services/scanner/IScannerService.hpp"
#include "utils/ILogger.hpp"
@@ -77,7 +77,7 @@ namespace UserInterface
setValidator(UpdatePeriodField, createMandatoryValidator());
setValidator(UpdateStartTimeField, createMandatoryValidator());
setValidator(SimilarityEngineTypeField, createMandatoryValidator());
- setValidator(ExtraTagsField, createUppercaseValidator(extraTagsDelimiter));
+ setValidator(ExtraTagsField, createUppercaseValidator());
// populate the model with initial data
loadData();
diff --git a/src/lms/ui/admin/InitWizardView.cpp b/src/lms/ui/admin/InitWizardView.cpp
index 9291c7a4..d3d2c77f 100644
--- a/src/lms/ui/admin/InitWizardView.cpp
+++ b/src/lms/ui/admin/InitWizardView.cpp
@@ -25,8 +25,8 @@
#include
#include "services/auth/IPasswordService.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/User.hpp"
+#include "database/Session.hpp"
+#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
#include "utils/Service.hpp"
diff --git a/src/lms/ui/admin/ScannerController.cpp b/src/lms/ui/admin/ScannerController.cpp
index 728a9a9a..c3a62715 100644
--- a/src/lms/ui/admin/ScannerController.cpp
+++ b/src/lms/ui/admin/ScannerController.cpp
@@ -26,8 +26,8 @@
#include
#include
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
#include "services/scanner/IScannerService.hpp"
#include "utils/Service.hpp"
#include "LmsApplication.hpp"
diff --git a/src/lms/ui/admin/UserView.cpp b/src/lms/ui/admin/UserView.cpp
index eb4dce6e..a8fbdbc8 100644
--- a/src/lms/ui/admin/UserView.cpp
+++ b/src/lms/ui/admin/UserView.cpp
@@ -28,8 +28,8 @@
#include
#include "services/auth/IPasswordService.hpp"
-#include "services/database/User.hpp"
-#include "services/database/Session.hpp"
+#include "database/User.hpp"
+#include "database/Session.hpp"
#include "utils/IConfig.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/lms/ui/admin/UsersView.cpp b/src/lms/ui/admin/UsersView.cpp
index b9a5dc0e..e1bd9b53 100644
--- a/src/lms/ui/admin/UsersView.cpp
+++ b/src/lms/ui/admin/UsersView.cpp
@@ -24,8 +24,8 @@
#include
#include "services/auth/IPasswordService.hpp"
-#include "services/database/User.hpp"
-#include "services/database/Session.hpp"
+#include "database/User.hpp"
+#include "database/Session.hpp"
#include "utils/ILogger.hpp"
#include "utils/Service.hpp"
diff --git a/src/lms/ui/common/LoginNameValidator.cpp b/src/lms/ui/common/LoginNameValidator.cpp
index 78bacc60..e07ba4b5 100644
--- a/src/lms/ui/common/LoginNameValidator.cpp
+++ b/src/lms/ui/common/LoginNameValidator.cpp
@@ -20,7 +20,7 @@
#include "LoginNameValidator.hpp"
#include
-#include "services/database/User.hpp"
+#include "database/User.hpp"
namespace UserInterface
{
diff --git a/src/lms/ui/common/UppercaseValidator.cpp b/src/lms/ui/common/UppercaseValidator.cpp
index 77ba47b1..a2332990 100644
--- a/src/lms/ui/common/UppercaseValidator.cpp
+++ b/src/lms/ui/common/UppercaseValidator.cpp
@@ -26,14 +26,9 @@ namespace UserInterface
{
class UppercaseValidator : public Wt::WValidator
{
- public:
- UppercaseValidator(std::string_view delimiters) : _delimiters{ delimiters } {}
-
private:
Wt::WValidator::Result validate(const Wt::WString& input) const override;
std::string javaScriptValidate() const override { return {}; }
-
- std::string _delimiters;
};
Wt::WValidator::Result UppercaseValidator::validate(const Wt::WString& input) const
@@ -42,7 +37,7 @@ namespace UserInterface
return Wt::WValidator::validate(input);
const std::string str{ input.toUTF8() };
- const bool valid{ std::all_of(std::cbegin(str),std::cend(str), [&](char c) { return std::isupper(c) || _delimiters.find(c) != std::string::npos;}) };
+ const bool valid{ std::all_of(std::cbegin(str), std::cend(str), [&](char c) { return !std::isalpha(c) || std::isupper(c);}) };
if (!valid)
return Wt::WValidator::Result(Wt::ValidationState::Invalid, Wt::WString::tr("Lms.field-must-be-in-upper-case"));
@@ -50,8 +45,8 @@ namespace UserInterface
return Wt::WValidator::Result(Wt::ValidationState::Valid);
}
- std::unique_ptr createUppercaseValidator(std::string_view delimiters)
+ std::unique_ptr createUppercaseValidator()
{
- return std::make_unique(delimiters);
+ return std::make_unique();
}
} // namespace UserInterface
diff --git a/src/lms/ui/common/UppercaseValidator.hpp b/src/lms/ui/common/UppercaseValidator.hpp
index 679fbb1f..59dbc3d7 100644
--- a/src/lms/ui/common/UppercaseValidator.hpp
+++ b/src/lms/ui/common/UppercaseValidator.hpp
@@ -23,5 +23,5 @@
namespace UserInterface
{
- std::unique_ptr createUppercaseValidator(std::string_view delimiters);
+ std::unique_ptr createUppercaseValidator();
} // namespace UserInterface
diff --git a/src/lms/ui/explore/ArtistCollector.cpp b/src/lms/ui/explore/ArtistCollector.cpp
index 3bed8cdf..a59a2692 100644
--- a/src/lms/ui/explore/ArtistCollector.cpp
+++ b/src/lms/ui/explore/ArtistCollector.cpp
@@ -19,10 +19,10 @@
#include "ArtistCollector.hpp"
-#include "services/database/Artist.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/TrackList.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Session.hpp"
+#include "database/TrackList.hpp"
+#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
#include "utils/Service.hpp"
diff --git a/src/lms/ui/explore/ArtistCollector.hpp b/src/lms/ui/explore/ArtistCollector.hpp
index 2c918ed7..4f74ad53 100644
--- a/src/lms/ui/explore/ArtistCollector.hpp
+++ b/src/lms/ui/explore/ArtistCollector.hpp
@@ -22,8 +22,8 @@
#include
#include "DatabaseCollectorBase.hpp"
-#include "services/database/ArtistId.hpp"
-#include "services/database/Types.hpp"
+#include "database/ArtistId.hpp"
+#include "database/Types.hpp"
namespace Database
{
diff --git a/src/lms/ui/explore/ArtistListHelpers.cpp b/src/lms/ui/explore/ArtistListHelpers.cpp
index 57dd82cc..5fa7debe 100644
--- a/src/lms/ui/explore/ArtistListHelpers.cpp
+++ b/src/lms/ui/explore/ArtistListHelpers.cpp
@@ -20,9 +20,9 @@
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/TrackArtistLink.hpp"
+#include "database/Artist.hpp"
+#include "database/Session.hpp"
+#include "database/TrackArtistLink.hpp"
#include "utils/EnumSet.hpp"
#include "LmsApplication.hpp"
#include "Utils.hpp"
diff --git a/src/lms/ui/explore/ArtistListHelpers.hpp b/src/lms/ui/explore/ArtistListHelpers.hpp
index 40d3bf6b..c9024d50 100644
--- a/src/lms/ui/explore/ArtistListHelpers.hpp
+++ b/src/lms/ui/explore/ArtistListHelpers.hpp
@@ -24,8 +24,8 @@
#include
#include "common/ValueStringModel.hpp"
-#include "services/database/Object.hpp"
-#include "services/database/Types.hpp"
+#include "database/Object.hpp"
+#include "database/Types.hpp"
namespace Database
{
diff --git a/src/lms/ui/explore/ArtistView.cpp b/src/lms/ui/explore/ArtistView.cpp
index 730d51ec..08cd7343 100644
--- a/src/lms/ui/explore/ArtistView.cpp
+++ b/src/lms/ui/explore/ArtistView.cpp
@@ -21,13 +21,13 @@
#include
-#include "services/database/Artist.hpp"
-#include "services/database/Cluster.hpp"
-#include "services/database/Release.hpp"
-#include "services/database/ScanSettings.hpp"
-#include "services/database/Session.hpp"
-#include "services/database/Track.hpp"
-#include "services/database/User.hpp"
+#include "database/Artist.hpp"
+#include "database/Cluster.hpp"
+#include "database/Release.hpp"
+#include "database/ScanSettings.hpp"
+#include "database/Session.hpp"
+#include "database/Track.hpp"
+#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/recommendation/IRecommendationService.hpp"
#include "utils/ILogger.hpp"
diff --git a/src/lms/ui/explore/ArtistView.hpp b/src/lms/ui/explore/ArtistView.hpp
index 078b483a..7855ea86 100644
--- a/src/lms/ui/explore/ArtistView.hpp
+++ b/src/lms/ui/explore/ArtistView.hpp
@@ -21,10 +21,10 @@
#include