Skip to main content

artifacts/apis/
mod.rs

1//! API endpoints for Artifacts.
2//!
3//! The version of the OpenAPI document: 7.0.3
4//!
5//! Generated by: https://openapi-generator.tech
6use std::error;
7use std::fmt;
8
9#[derive(Debug, Clone)]
10pub struct ResponseContent<T> {
11    pub status: reqwest::StatusCode,
12    pub content: String,
13    pub entity: Option<T>,
14}
15
16#[derive(Debug)]
17pub enum Error<T> {
18    Reqwest(reqwest::Error),
19    Serde(serde_json::Error),
20    Io(std::io::Error),
21    ResponseError(ResponseContent<T>),
22}
23
24impl<T> fmt::Display for Error<T> {
25    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26        let (module, e) = match self {
27            Error::Reqwest(e) => ("reqwest", e.to_string()),
28            Error::Serde(e) => ("serde", e.to_string()),
29            Error::Io(e) => ("IO", e.to_string()),
30            Error::ResponseError(e) => (
31                "response",
32                format!("status code: {}, content: {}", e.status, e.content),
33            ),
34        };
35        write!(f, "error in {}: {}", module, e)
36    }
37}
38
39impl<T: fmt::Debug> error::Error for Error<T> {
40    fn source(&self) -> Option<&(dyn error::Error + 'static)> {
41        Some(match self {
42            Error::Reqwest(e) => e,
43            Error::Serde(e) => e,
44            Error::Io(e) => e,
45            Error::ResponseError(_) => return None,
46        })
47    }
48}
49
50impl<T> From<reqwest::Error> for Error<T> {
51    fn from(e: reqwest::Error) -> Self {
52        Error::Reqwest(e)
53    }
54}
55
56impl<T> From<serde_json::Error> for Error<T> {
57    fn from(e: serde_json::Error) -> Self {
58        Error::Serde(e)
59    }
60}
61
62impl<T> From<std::io::Error> for Error<T> {
63    fn from(e: std::io::Error) -> Self {
64        Error::Io(e)
65    }
66}
67
68pub fn urlencode<T: AsRef<str>>(s: T) -> String {
69    ::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect()
70}
71
72pub fn parse_deep_object(prefix: &str, value: &serde_json::Value) -> Vec<(String, String)> {
73    if let serde_json::Value::Object(object) = value {
74        let mut params = vec![];
75
76        for (key, value) in object {
77            match value {
78                serde_json::Value::Object(_) => params.append(&mut parse_deep_object(
79                    &format!("{}[{}]", prefix, key),
80                    value,
81                )),
82                serde_json::Value::Array(array) => {
83                    for (i, value) in array.iter().enumerate() {
84                        params.append(&mut parse_deep_object(
85                            &format!("{}[{}][{}]", prefix, key, i),
86                            value,
87                        ));
88                    }
89                }
90                serde_json::Value::String(s) => {
91                    params.push((format!("{}[{}]", prefix, key), s.clone()))
92                }
93                _ => params.push((format!("{}[{}]", prefix, key), value.to_string())),
94            }
95        }
96
97        return params;
98    }
99
100    unimplemented!("Only objects are supported with style=deepObject")
101}
102
103pub mod accounts_api;
104pub mod achievements_api;
105pub mod badges_api;
106pub mod characters_api;
107pub mod effects_api;
108pub mod events_api;
109pub mod grand_exchange_api;
110pub mod items_api;
111pub mod leaderboard_api;
112pub mod maps_api;
113pub mod monsters_api;
114pub mod my_account_api;
115pub mod my_characters_api;
116pub mod npcs_api;
117pub mod resources_api;
118pub mod server_details_api;
119pub mod simulation_api;
120pub mod tasks_api;
121pub mod token_api;
122
123pub mod configuration;