diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-12-20 23:09:04 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2026-02-03 21:37:04 +0100 |
| commit | f7daf269dcad8e908fb605c4881e5d524f16eceb (patch) | |
| tree | c8445f94dc89cb6dbf6ab9a1b44808bae8f5d208 /src/lib/http_server.cc | |
| parent | 5c91d654ea2b9c5a1f67f8c95d251477adc047e9 (diff) | |
Add content GET endpoint.
Diffstat (limited to 'src/lib/http_server.cc')
| -rw-r--r-- | src/lib/http_server.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/http_server.cc b/src/lib/http_server.cc index 594f581d9..cdb1981ca 100644 --- a/src/lib/http_server.cc +++ b/src/lib/http_server.cc @@ -122,6 +122,21 @@ HTTPServer::get(string const& url) auto response = Response(200, json.dump()); response.set_type(Response::Type::JSON); return response; + } else if (boost::algorithm::starts_with(url, "/api/v1/content/")) { + vector<string> parts; + boost::algorithm::split(parts, url, boost::is_any_of("/")); + if (parts.size() != 5) { + return Response::ERROR_404; + } + auto content = ShowPlaylistContentStore::instance()->get(parts[4]); + if (!content) { + return Response::ERROR_404; + } + /* XXX: converting to JSON this way feels a bit grotty */ + auto json = ShowPlaylistEntry(content, {}).as_json(); + auto response = Response(200, json.dump()); + response.set_type(Response::Type::JSON); + return response; } else { LOG_HTTP("404 {}", url); return Response::ERROR_404; |
