oauth/v2_0/
error.rs

1use oauth2::{
2    basic::BasicErrorResponseType,
3    url::{ParseError, Url},
4    RequestTokenError, StandardErrorResponse,
5};
6use thiserror::Error;
7
8/// The global `Result` alias of the module.
9pub type Result<T> = std::result::Result<T, Error>;
10
11/// The global `Error` enum of the module.
12#[derive(Error, Debug)]
13pub enum Error {
14    #[error("cannot read response body")]
15    ReadResponseBodyError(#[source] http::Error),
16    #[error("cannot build auth url")]
17    BuildAuthUrlError(#[source] oauth2::url::ParseError),
18    #[error("cannot build token url")]
19    BuildTokenUrlError(#[source] oauth2::url::ParseError),
20    #[error("cannot build revocation url")]
21    BuildRevocationUrlError(#[source] oauth2::url::ParseError),
22    #[error("cannot build introspection url")]
23    BuildIntrospectionUrlError(#[source] oauth2::url::ParseError),
24    #[error("cannot build redirect url")]
25    BuildRedirectUrlError(#[source] oauth2::url::ParseError),
26    #[error("cannot bind redirect server")]
27    BindRedirectServerError(String, u16, #[source] std::io::Error),
28    #[error("cannot accept redirect server connections")]
29    AcceptRedirectServerError(#[source] std::io::Error),
30    #[error("invalid state {0}: expected {1}")]
31    InvalidStateError(String, String),
32    #[error("missing redirect url from {0}")]
33    MissingRedirectUrlError(String),
34    #[error("cannot parse redirect url {1}")]
35    ParseRedirectUrlError(#[source] ParseError, String),
36    #[error("cannot find code from redirect url {0}")]
37    FindCodeInRedirectUrlError(Url),
38    #[error("cannot find state from redirect url {0}")]
39    FindStateInRedirectUrlError(Url),
40    #[error("cannot exchange code for access and refresh tokens: {0}")]
41    ExchangeCodeError(String),
42
43    #[error(transparent)]
44    IoError(#[from] std::io::Error),
45    #[error(transparent)]
46    HttpError(#[from] http::Error),
47
48    #[error("cannot refresh access token using the refresh token")]
49    RefreshAccessTokenError(
50        Box<RequestTokenError<Error, StandardErrorResponse<BasicErrorResponseType>>>,
51    ),
52}