soph_server/error/
mod.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
use crate::traits::ErrorTrait;

#[derive(thiserror::Error, Debug)]
pub enum Error {
    #[error(transparent)]
    Any(#[from] soph_core::AnyError),

    #[error(transparent)]
    Container(#[from] soph_core::error::ContainerError),

    #[error(transparent)]
    FormRejection(#[from] axum::extract::rejection::FormRejection),

    #[error(transparent)]
    HttpError(#[from] axum::http::Error),

    #[error(transparent)]
    InvalidHeaderName(#[from] axum::http::header::InvalidHeaderName),

    #[error(transparent)]
    InvalidMethod(#[from] axum::http::method::InvalidMethod),

    #[error(transparent)]
    InvalidHeaderValue(#[from] axum::http::header::InvalidHeaderValue),

    #[error(transparent)]
    IO(#[from] std::io::Error),

    #[cfg(feature = "request-auth")]
    #[error(transparent)]
    Auth(#[from] soph_auth::error::Error),

    #[cfg(feature = "request-json")]
    #[error(transparent)]
    JsonRejection(#[from] axum::extract::rejection::JsonRejection),

    #[cfg(feature = "request-multipart")]
    #[error(transparent)]
    MultipartRejection(#[from] axum::extract::multipart::MultipartRejection),

    #[cfg(feature = "request-multipart")]
    #[error(transparent)]
    Multipart(#[from] axum::extract::multipart::MultipartError),

    #[cfg(feature = "request-path")]
    #[error(transparent)]
    PathRejection(#[from] axum::extract::rejection::PathRejection),

    #[cfg(feature = "request-query")]
    #[error(transparent)]
    QueryRejection(#[from] axum::extract::rejection::QueryRejection),

    #[cfg(feature = "database")]
    #[error(transparent)]
    SeaOrm(#[from] sea_orm::DbErr),

    #[error(transparent)]
    SerdeJson(#[from] serde_json::Error),

    #[cfg(feature = "response-view")]
    #[error(transparent)]
    Tera(#[from] tera::Error),

    #[error(transparent)]
    ToStr(#[from] axum::http::header::ToStrError),

    #[error("Unsupported media type")]
    UnsupportedMediaType,

    #[cfg(feature = "request-id")]
    #[error(transparent)]
    Uuid(#[from] uuid::Error),

    #[cfg(feature = "request-validate")]
    #[error(transparent)]
    Validate(#[from] validator::ValidationErrors),
}

impl ErrorTrait for Error {}