Subsonic API: returns the created/updated playlist in createPlaylist endpoint. ref #393

This commit is contained in:
emeric
2023-12-13 18:55:09 +01:00
parent 3ad990a183
commit 5257f687b4
2 changed files with 12 additions and 3 deletions
@@ -89,7 +89,7 @@ namespace API::Subsonic
std::vector<TrackId> trackIds{ getMultiParametersAs<TrackId>(context.parameters, "songId") };
if (!name && !id)
throw RequiredParameterMissingError{ "name or id" };
throw RequiredParameterMissingError{ "name or playlistId" };
auto transaction{ context.dbSession.createWriteTransaction() };
@@ -125,7 +125,16 @@ namespace API::Subsonic
context.dbSession.create<TrackListEntry>(track, tracklist);
}
return Response::createOkResponse(context.serverProtocolVersion);
Response response{ Response::createOkResponse(context.serverProtocolVersion) };
Response::Node playlistNode{ createPlaylistNode(tracklist, context.dbSession) };
auto entries{ tracklist->getEntries() };
for (const TrackListEntry::pointer& entry : entries)
playlistNode.addArrayChild("entry", createSongNode(context, entry->getTrack(), user));
response.addNode("playlist", std::move(playlistNode));
return response;
}
Response handleUpdatePlaylistRequest(RequestContext& context)