mangadex_api_schema_rust/v5/
error.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
use std::collections::HashMap;

use serde::Deserialize;
use uuid::Uuid;

#[derive(Debug, thiserror::Error, Deserialize)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
#[error("Bad request")]
#[cfg_attr(feature = "specta", derive(specta::Type))]
pub struct MangaDexErrorResponse {
    #[serde(default)]
    pub errors: Vec<MangaDexError_>,
}

#[derive(Debug, thiserror::Error, PartialEq, Eq, Deserialize, Clone)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
#[cfg_attr(feature = "specta", derive(specta::Type))]
#[error("API error")]
pub struct MangaDexError_ {
    pub id: Uuid,
    /// HTTP status code.
    pub status: u16,
    /// Error title.
    pub title: Option<String>,
    /// Description about the error.
    pub detail: Option<String>,
    /// Provides insight into why the request failed.
    ///
    /// # Captcha Errors (400)
    ///
    /// The error may have been caused by one of the following:
    ///
    /// - Captcha challenge result was wrong.
    /// - The Captcha Verification service was down.
    /// - Other, refer to the error message and the `errorCode` value.
    ///
    /// # Rate Limit, Captcha Required (403)
    ///
    /// Some endpoints may require captchas to proceed, in order to slow down automated malicious
    /// traffic. Legitimate users might also be affected, based on the frequency of write requests
    /// or due certain endpoints being particularly sensitive to malicious use, such as user signup.
    ///
    /// Once an endpoint decides that a captcha needs to be solved,
    /// a 403 Forbidden response will be returned, with the error code `captcha_required_exception`.
    /// The sitekey needed for recaptcha to function is provided in both the
    /// `X-Captcha-Sitekey` header field, as well as in the error context,
    /// specified as `siteKey` parameter.
    ///
    /// The captcha result of the client can either be passed into the repeated original request
    /// with the `X-Captcha-Result` header or alternatively to the `POST /captcha/solve` endpoint.
    /// The time a solved captcha is remembered varies across different endpoints and can also be
    /// influenced by individual client behavior.
    ///
    /// Authentication is not required for the `POST /captcha/solve` endpoint, captchas are tracked
    /// both by client ip and logged in user id. If you are logged in, you want to send the session
    /// token along, so you validate the captcha for your client ip and user id at the same time,
    /// but it is not required.
    // TODO: Use enum representations once the structure of this field is known.
    // See: https://serde.rs/enum-representations.html
    pub context: Option<HashMap<String, String>>,
}