31 lines
831 B
Rust
31 lines
831 B
Rust
use actix_web::dev::HttpResponseBuilder;
|
|
use actix_web::http::StatusCode;
|
|
use actix_web_httpauth::extractors::{basic, AuthenticationError};
|
|
|
|
pub enum Error {
|
|
BadGateway(String),
|
|
Unauthorized(String),
|
|
}
|
|
|
|
impl Error {
|
|
}
|
|
|
|
impl From<git2::Error> for Error {
|
|
fn from(giterr: git2::Error) -> Self {
|
|
Error::BadGateway(format!("{}", giterr))
|
|
}
|
|
}
|
|
|
|
impl From<std::io::Error> for Error {
|
|
fn from(ioerr: std::io::Error) -> Self {
|
|
Error::BadGateway(format!("{}", ioerr))
|
|
}
|
|
}
|
|
|
|
impl From<Error> for actix_web::error::Error {
|
|
fn from(e: Error) -> Self {
|
|
match e {
|
|
Error::BadGateway(msg) => {HttpResponseBuilder::new(StatusCode::BAD_GATEWAY).body(msg).into()}
|
|
Error::Unauthorized(realm) => {AuthenticationError::from(basic::Config::default().realm(realm)).into()}}
|
|
}
|
|
} |