use serde::{Deserialize, Serialize};
use super::types::BatchItem;
use crate::{ZaiResult, client::ZaiClient};
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CancelBatchBody {}
pub struct CancelBatchRequest {
batch_id: String,
body: CancelBatchBody,
}
impl CancelBatchRequest {
pub fn new(batch_id: impl Into<String>) -> Self {
Self {
batch_id: batch_id.into(),
body: CancelBatchBody::default(),
}
}
pub async fn send_via(&self, client: &ZaiClient) -> ZaiResult<CancelBatchResponse> {
let route = crate::client::routes::BATCHES_CANCEL;
let url = client.endpoints().resolve_route(route, &[&self.batch_id])?;
client
.send_json::<_, CancelBatchResponse>(route.method(), url, &self.body)
.await
}
}
pub type CancelBatchResponse = BatchItem;