Subsonic API: added getSong endpoint. ref #212

This commit is contained in:
emeric
2022-09-06 12:48:52 +02:00
parent aa3d226215
commit 915e114933
+24 -1
View File
@@ -872,6 +872,29 @@ handleGetAlbumRequest(RequestContext& context)
return response;
}
static
Response
handleGetSongRequest(RequestContext& context)
{
// Mandatory params
TrackId id {getMandatoryParameterAs<TrackId>(context.parameters, "id")};
auto transaction {context.dbSession.createSharedTransaction()};
const Track::pointer track {Track::find(context.dbSession, id)};
if (!track)
throw RequestedDataNotFoundError {};
User::pointer user {User::find(context.dbSession, context.userId)};
if (!user)
throw UserNotAuthorizedError {};
Response response {Response::createOkResponse(context.serverProtocolVersion)};
response.addNode("song", trackToResponseNode(track, context.dbSession, user));
return response;
}
static
Response
handleGetArtistRequest(RequestContext& context)
@@ -1835,7 +1858,7 @@ static const std::unordered_map<std::string, RequestEntryPointInfo> requestEntry
{"/getArtists", {handleGetArtistsRequest}},
{"/getArtist", {handleGetArtistRequest}},
{"/getAlbum", {handleGetAlbumRequest}},
{"/getSong", {handleNotImplemented}},
{"/getSong", {handleGetSongRequest}},
{"/getVideos", {handleNotImplemented}},
{"/getArtistInfo", {handleGetArtistInfoRequest}},
{"/getArtistInfo2", {handleGetArtistInfo2Request}},