graph_rs_sdk/batch/
mod.rs1use crate::api_default_imports::*;
2use crate::header::{HeaderMap, HeaderValue, CONTENT_TYPE};
3
4api_client!(BatchApiClient);
5
6impl BatchApiClient {
7 pub fn batch<B: serde::Serialize>(&self, batch: &B) -> RequestHandler {
8 let body_result = serde_json::to_string(batch).map_err(GraphFailure::from);
9 let url_result = self.build_url("$batch", &serde_json::json!({}));
10
11 let rc_result = RequestComponents::try_from((
12 self.resource_config.resource_identity,
13 Method::POST,
14 url_result,
15 ));
16
17 match rc_result {
18 Ok(rc) => {
19 let mut header_map = HeaderMap::new();
20 header_map
21 .entry(CONTENT_TYPE)
22 .or_insert(HeaderValue::from_static("application/json"));
23
24 match body_result {
25 Ok(body) => RequestHandler::new(
26 self.client.clone(),
27 rc,
28 None,
29 Some(BodyRead::new(body)),
30 )
31 .headers(header_map),
32 Err(err) => RequestHandler::new(self.client.clone(), rc, Some(err), None)
33 .headers(header_map),
34 }
35 }
36 Err(err) => {
37 let rc = RequestComponents::new(
38 self.resource_config.resource_identity,
39 self.resource_config.url.clone(),
40 Method::POST,
41 );
42 RequestHandler::new(self.client.clone(), rc, Some(err), None)
43 }
44 }
45 }
46}