summaryrefslogtreecommitdiff
path: root/src/lib/http_server.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-12-20 23:09:04 +0100
committerCarl Hetherington <cth@carlh.net>2026-02-03 21:37:04 +0100
commitf7daf269dcad8e908fb605c4881e5d524f16eceb (patch)
treec8445f94dc89cb6dbf6ab9a1b44808bae8f5d208 /src/lib/http_server.cc
parent5c91d654ea2b9c5a1f67f8c95d251477adc047e9 (diff)
Add content GET endpoint.
Diffstat (limited to 'src/lib/http_server.cc')
-rw-r--r--src/lib/http_server.cc15
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;