use crate::routes::ApiError; use crate::search::SearchConfig; use crate::util::guards::admin_key_guard; use actix_web::{HttpResponse, delete, get, web}; use meilisearch_sdk::tasks::{Task, TasksCancelQuery}; use serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::time::Duration; use utoipa::ToSchema; pub fn config(cfg: &mut utoipa_actix_web::service_config::ServiceConfig) { cfg.service(tasks).service(tasks_cancel); } #[utoipa::path] #[get("tasks", guard = "admin_key_guard")] pub async fn tasks( config: web::Data, ) -> Result { let client = config.make_batch_client()?; let tasks = client .with_all_clients("get_tasks", async |client| { let tasks = client.get_tasks().await?; Ok(tasks.results) }) .await?; #[derive(Serialize, ToSchema)] struct MeiliTask