pix_api_client/
errors.rs

1use serde::{Deserialize, Serialize};
2use thiserror::Error;
3
4pub type ApiResult<T> = Result<T, PixError>;
5
6#[derive(Debug, Serialize, Deserialize)]
7struct GenericErrorMessage {
8    nome: String,
9    mensagem: String,
10    errors: Option<Vec<Erros>>,
11}
12
13#[derive(Debug, Serialize, Deserialize)]
14struct Erros {
15    chave: String,
16    caminho: String,
17    mensagem: String,
18}
19
20#[derive(Debug, Error)]
21pub enum PixError {
22    /// Error 401
23    #[error("Invalid credentials")]
24    InvalidCredentials,
25
26    /// Error 401
27    #[error("Access token is expired. Renew it")]
28    ExpiredToken(String),
29
30    #[error("There is something wrong with the payload this library sent.")]
31    PayloadError,
32
33    #[error("`{0}`")]
34    Other(String),
35
36    #[error(transparent)]
37    NonCompliantResponse(#[from] serde_json::Error),
38
39    #[error(transparent)]
40    NetworkError(#[from] reqwest::Error),
41}