batch_mode_process_response/
process_error_data.rs1crate::ix!();
3
4pub async fn process_error_data(error_data: &BatchErrorData)
5-> Result<(), BatchErrorProcessingError>
6{
7 for response_record in error_data.responses() {
8 if let Some(error_body) = response_record.response().body().as_error() {
9 eprintln!(
10 "Error for Custom ID '{}': Code: {:?}, Message: {}",
11 response_record.custom_id(),
12 error_body.error().code(),
13 error_body.error().message()
14 );
15 }
17 }
18 Ok(())
19}
20
21#[cfg(test)]
22mod process_error_data_tests {
23 use super::*;
24
25 #[traced_test]
26 async fn test_process_error_data() {
27 let err_details = BatchErrorDetailsBuilder::default()
29 .error_type(ErrorType::Unknown("test_err".to_string()))
30 .code(Some("401".to_string()))
31 .message("Unauthorized".to_string())
32 .build()
33 .unwrap();
34
35 let err_body = BatchErrorResponseBodyBuilder::default()
36 .error(err_details)
37 .build()
38 .unwrap();
39
40 let response_content = BatchResponseContentBuilder::default()
41 .status_code(400_u16)
42 .request_id(ResponseRequestId::new("resp_err1"))
43 .body(BatchResponseBody::Error(err_body))
44 .build()
45 .unwrap();
46
47 let record = BatchResponseRecordBuilder::default()
48 .id(BatchRequestId::new("id"))
49 .custom_id(CustomRequestId::new("err1"))
50 .response(response_content)
51 .build()
52 .unwrap();
53
54 let error_data = BatchErrorDataBuilder::default()
55 .responses(vec![record])
56 .build()
57 .unwrap();
58
59 let result = process_error_data(&error_data).await;
60 assert!(result.is_ok());
61 }
62}