openapi_rs/api/v1/sync/
system_sync_resume_task.rs1use 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}