openapi_rs/api/v1/sync/
system_sync_resume_task.rs

1use crate::common::define::{
2    AsyncResponseFn, BaseRequest, BaseResponse, HttpBuilder, HttpFn, RequestFn,
3};
4use reqwest::{Method, Response};
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Default, Clone, Serialize, Deserialize)]
8#[serde(default)]
9pub struct SystemResumeTaskRequest {
10    #[serde(rename = "JobId")]
11    pub job_id: Option<String>,
12}
13
14impl SystemResumeTaskRequest {
15    pub fn new() -> Self {
16        Self::default()
17    }
18    pub fn with_job_ids(mut self, job_id: String) -> Self {
19        self.job_id = Some(job_id);
20        self
21    }
22}
23
24#[derive(Debug, Default, Clone, Serialize, Deserialize)]
25#[serde(default)]
26pub struct SystemResumeTaskResponse {}
27
28impl HttpBuilder for SystemResumeTaskRequest {
29    type Response = BaseResponse<SystemResumeTaskResponse>;
30    fn builder(self) -> HttpFn<Self::Response> {
31        Box::new(move || {
32            let request_fn: RequestFn = Box::new(move || BaseRequest {
33                method: Method::POST,
34                uri: format!("/system/sync-task/{:?}/resume", self.job_id),
35                ..Default::default()
36            });
37            let response_fn: AsyncResponseFn<Self::Response> =
38                Box::new(|response: Response| Box::pin(async move { Ok(response.json().await?) }));
39            (request_fn, response_fn)
40        })
41    }
42}
43
44#[cfg(test)]
45mod tests {
46    use super::*;
47    use crate::common::client::OpenApiClient;
48    use crate::common::config::{EndpointType, OpenApiConfig};
49    use tracing::info;
50
51    #[tokio::test]
52    async fn test_system_sync_resume_task() -> anyhow::Result<()> {
53        tracing_subscriber::fmt::init();
54        dotenvy::dotenv()?;
55        let config = OpenApiConfig::new().load_from_env()?;
56        let mut client = OpenApiClient::new(config).with_endpoint_type(EndpointType::Sync);
57
58        let http_fn = SystemResumeTaskRequest::new()
59            .with_job_ids("123".to_string())
60            .builder();
61        let response = client.send(http_fn).await?;
62        info!("response: {:#?}", response);
63
64        Ok(())
65    }
66}