apple_search_ads/objects/
api_error_response.rs

1// https://developer.apple.com/documentation/apple_search_ads/apierrorresponse
2
3use serde::{Deserialize, Serialize};
4
5use super::error_response_body::ErrorResponseBody;
6
7//
8#[derive(Deserialize, Serialize, Debug, Clone)]
9pub struct ApiErrorResponse {
10    pub error: ErrorResponseBody,
11}
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16
17    use std::error;
18
19    #[test]
20    fn test_de() -> Result<(), Box<dyn error::Error>> {
21        let body = serde_json::from_str::<ApiErrorResponse>(
22            r#"{
23                "error": {
24                    "errors": [
25                        {
26                        "messageCode": "<CODE>",
27                        "message": "<MESSAGE>",
28                        "field": "<FIELD>"
29                        }
30                    ]
31                }
32            }"#,
33        )?
34        .error;
35
36        assert_eq!(body.errors.len(), 1);
37
38        Ok(())
39    }
40
41    #[test]
42    fn test_v3_de_with_unauthorized() -> Result<(), Box<dyn error::Error>> {
43        let json_content =
44            include_str!("../../tests/v3/response_body_json_files/error_with_unauthorized.json");
45
46        let _: ApiErrorResponse = serde_json::from_str(json_content)?;
47
48        Ok(())
49    }
50}