backend/keycloak_api/
errors.rs1use std::{
4 error::Error,
5 fmt::{self, Display, Formatter},
6};
7
8#[derive(Debug, Clone)]
9pub enum KeycloakApiError {
10 Reqwest(String),
11 Other(String),
12}
13
14impl Display for KeycloakApiError {
15 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
16 match self {
17 Self::Reqwest(err) => write!(f, "Reqwest error: {err}"),
18 Self::Other(err) => write!(f, "Other error: {err}"),
19 }
20 }
21}
22
23impl Error for KeycloakApiError {}
24
25impl From<reqwest::Error> for KeycloakApiError {
26 fn from(err: reqwest::Error) -> Self {
27 log::debug!("Reqwest error: {err}");
28 Self::Reqwest(err.to_string())
29 }
30}
31
32impl From<url::ParseError> for KeycloakApiError {
33 fn from(err: url::ParseError) -> Self {
34 log::debug!("ParseError error: {err}");
35 Self::Other(err.to_string())
36 }
37}
38
39impl From<actix_http::header::InvalidHeaderValue> for KeycloakApiError {
40 fn from(err: actix_http::header::InvalidHeaderValue) -> Self {
41 log::debug!("InvalidHeaderValue error: {err}");
42 Self::Other(err.to_string())
43 }
44}
45
46impl From<serde_json::Error> for KeycloakApiError {
47 fn from(err: serde_json::Error) -> Self {
48 log::debug!("serde_json error: {err}");
49 Self::Other(err.to_string())
50 }
51}