Subsonci API: added getAlbmInfo support

This commit is contained in:
emeric
2024-10-31 15:50:17 +01:00
parent a15b060242
commit 0ca2d8b34c
6 changed files with 120 additions and 2 deletions
@@ -38,6 +38,7 @@
#include "SubsonicId.hpp"
#include "Utils.hpp"
#include "responses/Album.hpp"
#include "responses/AlbumInfo.hpp"
#include "responses/Artist.hpp"
#include "responses/Genre.hpp"
#include "responses/Song.hpp"
@@ -560,6 +561,37 @@ namespace lms::api::subsonic
return response;
}
Response handleGetAlbumInfo(RequestContext& context)
{
const db::DirectoryId directoryId{ getMandatoryParameterAs<db::DirectoryId>(context.parameters, "id") };
Response response{ Response::createOkResponse(context.serverProtocolVersion) };
{
auto transaction{ context.dbSession.createReadTransaction() };
if (db::Release::pointer release{ getReleaseFromDirectory(context.dbSession, directoryId) })
response.addNode("albumInfo", createAlbumInfoNode(context, release));
}
return response;
}
Response handleGetAlbumInfo2(RequestContext& context)
{
const db::ReleaseId releaseId{ getMandatoryParameterAs<db::ReleaseId>(context.parameters, "id") };
Response response{ Response::createOkResponse(context.serverProtocolVersion) };
{
auto transaction{ context.dbSession.createReadTransaction() };
if (db::Release::pointer release{ db::Release::find(context.dbSession, releaseId) })
response.addNode("albumInfo", createAlbumInfoNode(context, release));
}
return response;
}
Response handleGetSimilarSongsRequest(RequestContext& context)
{
return handleGetSimilarSongsRequestCommon(context, false /* no id3 */);