mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-27 07:14:26 +01:00
impl get all updates
This commit is contained in:
parent
d9dc2036a7
commit
12ee7b9b13
@ -50,4 +50,20 @@ impl Data {
|
|||||||
pub fn get_update_status(&self, _index: &str, uid: u64) -> anyhow::Result<Option<UpdateStatus<UpdateMeta, UpdateResult, String>>> {
|
pub fn get_update_status(&self, _index: &str, uid: u64) -> anyhow::Result<Option<UpdateStatus<UpdateMeta, UpdateResult, String>>> {
|
||||||
self.update_queue.get_update_status(uid)
|
self.update_queue.get_update_status(uid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_updates_status(&self, _index: &str) -> anyhow::Result<Vec<UpdateStatus<UpdateMeta, UpdateResult, String>>> {
|
||||||
|
let result = self.update_queue.iter_metas(|processing, processed, pending, aborted, failed| {
|
||||||
|
let mut metas = processing
|
||||||
|
.map(UpdateStatus::from)
|
||||||
|
.into_iter()
|
||||||
|
.chain(processed.filter_map(|i| Some(i.ok()?.1)).map(UpdateStatus::from))
|
||||||
|
.chain(pending.filter_map(|i| Some(i.ok()?.1)).map(UpdateStatus::from))
|
||||||
|
.chain(aborted.filter_map(|i| Some(i.ok()?.1)).map(UpdateStatus::from))
|
||||||
|
.chain(failed.filter_map(|i| Some(i.ok()?.1)).map(UpdateStatus::from))
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
metas.sort_by(|a, b| a.id().cmp(&b.id()));
|
||||||
|
Ok(metas)
|
||||||
|
})?;
|
||||||
|
Ok(result)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -124,8 +124,18 @@ async fn get_update_status(
|
|||||||
|
|
||||||
#[get("/indexes/{index_uid}/updates", wrap = "Authentication::Private")]
|
#[get("/indexes/{index_uid}/updates", wrap = "Authentication::Private")]
|
||||||
async fn get_all_updates_status(
|
async fn get_all_updates_status(
|
||||||
_data: web::Data<Data>,
|
data: web::Data<Data>,
|
||||||
_path: web::Path<IndexParam>,
|
path: web::Path<IndexParam>,
|
||||||
) -> Result<HttpResponse, ResponseError> {
|
) -> Result<HttpResponse, ResponseError> {
|
||||||
|
let result = data.get_updates_status(&path.index_uid);
|
||||||
|
match result {
|
||||||
|
Ok(metas) => {
|
||||||
|
let json = serde_json::to_string(&metas).unwrap();
|
||||||
|
Ok(HttpResponse::Ok().body(json))
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
error!("{}", e);
|
||||||
todo!()
|
todo!()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user