From b80da26369440b92f1ce7f6665b4e3138786ff4f Mon Sep 17 00:00:00 2001 From: Martin Ridgers Date: Tue, 17 Sep 2024 13:34:25 +0200 Subject: Surfaced oplog paging to HTTP handler --- src/zenserver/projectstore/httpprojectstore.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'src/zenserver/projectstore/httpprojectstore.cpp') diff --git a/src/zenserver/projectstore/httpprojectstore.cpp b/src/zenserver/projectstore/httpprojectstore.cpp index 9e4961889..01bff1746 100644 --- a/src/zenserver/projectstore/httpprojectstore.cpp +++ b/src/zenserver/projectstore/httpprojectstore.cpp @@ -1479,14 +1479,29 @@ HttpProjectService::HandleOpLogEntriesRequest(HttpRouterRequest& Req) { Response.BeginArray("entries"sv); + ProjectStore::Oplog::Paging EntryPaging; + if (std::string_view Param = Params.GetValue("start"); !Param.empty()) + { + if (auto Value = ParseInt(Param)) + { + EntryPaging.Start = *Value; + } + } + if (std::string_view Param = Params.GetValue("count"); !Param.empty()) + { + if (auto Value = ParseInt(Param)) + { + EntryPaging.Count = *Value; + } + } + if (FieldNamesFilter.empty()) { - FoundLog->IterateOplog([&Response](CbObjectView Op) { Response << Op; }, ProjectStore::Oplog::Paging{}); + FoundLog->IterateOplog([&Response](CbObjectView Op) { Response << Op; }, &EntryPaging); } else { - FoundLog->IterateOplog([this, &Response, &FilterObject](CbObjectView Op) { Response << FilterObject(Op); }, - ProjectStore::Oplog::Paging{}); + FoundLog->IterateOplog([this, &Response, &FilterObject](CbObjectView Op) { Response << FilterObject(Op); }, &EntryPaging); } Response.EndArray(); -- cgit v1.2.3