aboutsummaryrefslogtreecommitdiff
path: root/zenserver/projectstore.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-01-11 23:52:55 -0800
committerGitHub <[email protected]>2023-01-11 23:52:55 -0800
commita24820cbbc3c032f2cfc7b4c3bf9cac0bbaaeb6c (patch)
tree4c756826edc1839cdf894a995a8dc4e927f6bb65 /zenserver/projectstore.cpp
parent0.2.1 (diff)
downloadzen-a24820cbbc3c032f2cfc7b4c3bf9cac0bbaaeb6c.tar.xz
zen-a24820cbbc3c032f2cfc7b4c3bf9cac0bbaaeb6c.zip
Add info (GET) endpoints for structured cache (#211)
* Add GET requests on cache/namespace/bucket level * Add root route for project store requests (same as /list) * Add markerpath to oplog info object * Add totalsize, opcount and expired to oplog info * Changelog
Diffstat (limited to 'zenserver/projectstore.cpp')
-rw-r--r--zenserver/projectstore.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/zenserver/projectstore.cpp b/zenserver/projectstore.cpp
index 5c7de2a43..d1033dea1 100644
--- a/zenserver/projectstore.cpp
+++ b/zenserver/projectstore.cpp
@@ -1717,8 +1717,11 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects)
m_Router.AddPattern("chunk", "([[:xdigit:]]{24})");
m_Router.AddPattern("hash", "([[:xdigit:]]{40})");
- // This would ideally just be the response for the root /prj endpoint but this is
- // currently not possible for (arbitrary, external) technical reasons
+ m_Router.RegisterRoute(
+ "",
+ [this](HttpRouterRequest& Req) { Req.ServerRequest().WriteResponse(HttpResponseCode::OK, m_ProjectStore->GetProjectsList()); },
+ HttpVerb::kGet);
+
m_Router.RegisterRoute(
"list",
[this](HttpRouterRequest& Req) { Req.ServerRequest().WriteResponse(HttpResponseCode::OK, m_ProjectStore->GetProjectsList()); },
@@ -2485,7 +2488,9 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects)
ProjectStore::Oplog& Log = *OplogIt;
CbObjectWriter Cb;
- Cb << "id"sv << Log.OplogId() << "project"sv << Project->Identifier << "tempdir"sv << Log.TempPath().c_str();
+ Cb << "id"sv << Log.OplogId() << "project"sv << Project->Identifier << "tempdir"sv << Log.TempPath().c_str()
+ << "markerpath"sv << Log.MarkerPath().c_str() << "totalsize"sv << Log.TotalSize() << "opcount"
+ << Log.OplogCount() << "expired"sv << Log.IsExpired();
Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Cb.Save());
}