From 531c5ca24dfae60849f62cab0ecc1edff26b0e5d Mon Sep 17 00:00:00 2001 From: emeric Date: Tue, 2 Jun 2026 09:57:19 +0200 Subject: [PATCH] Added OpenSubsonic API: added missing tokenInfo endpoint, fixes #838 --- src/libs/subsonic/impl/SubsonicResource.cpp | 1 + src/libs/subsonic/impl/endpoints/System.cpp | 14 ++++++++++++++ src/libs/subsonic/impl/endpoints/System.hpp | 1 + 3 files changed, 16 insertions(+) diff --git a/src/libs/subsonic/impl/SubsonicResource.cpp b/src/libs/subsonic/impl/SubsonicResource.cpp index 33910a8c..825d6986 100644 --- a/src/libs/subsonic/impl/SubsonicResource.cpp +++ b/src/libs/subsonic/impl/SubsonicResource.cpp @@ -135,6 +135,7 @@ namespace lms::api::subsonic { "/ping", { handlePingRequest } }, { "/getLicense", { handleGetLicenseRequest } }, { "/getOpenSubsonicExtensions", { handleGetOpenSubsonicExtensions, AuthenticationMode::Unauthenticated } }, + { "/tokenInfo", { handleTokenInfoRequest } }, // Browsing { "/getMusicFolders", { handleGetMusicFoldersRequest } }, diff --git a/src/libs/subsonic/impl/endpoints/System.cpp b/src/libs/subsonic/impl/endpoints/System.cpp index 987c60fa..5263dc17 100644 --- a/src/libs/subsonic/impl/endpoints/System.cpp +++ b/src/libs/subsonic/impl/endpoints/System.cpp @@ -19,6 +19,9 @@ #include +#include "database/Session.hpp" +#include "database/objects/User.hpp" + #include "endpoints/System.hpp" namespace lms::api::subsonic @@ -40,6 +43,17 @@ namespace lms::api::subsonic return response; } + Response handleTokenInfoRequest(RequestContext& context) + { + Response response{ Response::createOkResponse(context.getServerProtocolVersion()) }; + Response::Node& tokenInfoNode{ response.createNode("tokenInfo") }; + + auto transaction{ context.getDbSession().createReadTransaction() }; + tokenInfoNode.setAttribute("username", std::string{ context.getUser()->getLoginName() }); + + return response; + } + Response handleGetOpenSubsonicExtensions(RequestContext& context) { Response response{ Response::createOkResponse(context.getServerProtocolVersion()) }; diff --git a/src/libs/subsonic/impl/endpoints/System.hpp b/src/libs/subsonic/impl/endpoints/System.hpp index b5be1347..0eb98a0e 100644 --- a/src/libs/subsonic/impl/endpoints/System.hpp +++ b/src/libs/subsonic/impl/endpoints/System.hpp @@ -27,4 +27,5 @@ namespace lms::api::subsonic Response handlePingRequest(RequestContext& context); Response handleGetLicenseRequest(RequestContext& context); Response handleGetOpenSubsonicExtensions(RequestContext& context); + Response handleTokenInfoRequest(RequestContext& context); } // namespace lms::api::subsonic