feat(http): paginate the index resource

Fix #2373
This commit is contained in:
Irevoire 2022-05-24 11:29:03 +02:00 committed by Tamo
parent ab39df9693
commit 627f13df85
No known key found for this signature in database
GPG key ID: 20CD8020AFA88D69
8 changed files with 208 additions and 75 deletions

View file

@ -103,8 +103,27 @@ impl Server {
}
}
pub async fn list_indexes(&self) -> (Value, StatusCode) {
self.service.get("/indexes").await
pub async fn list_indexes(
&self,
offset: Option<usize>,
limit: Option<usize>,
) -> (Value, StatusCode) {
let (offset, limit) = (
offset.map(|offset| format!("offset={offset}")),
limit.map(|limit| format!("limit={limit}")),
);
let query_parameter = offset
.as_ref()
.zip(limit.as_ref())
.map(|(offset, limit)| format!("{offset}&{limit}"))
.or_else(|| offset.xor(limit));
if let Some(query_parameter) = query_parameter {
self.service
.get(format!("/indexes?{query_parameter}"))
.await
} else {
self.service.get("/indexes").await
}
}
pub async fn version(&self) -> (Value, StatusCode) {