25 lines
550 B
Rust
25 lines
550 B
Rust
use actix_web::http::StatusCode;
|
|
|
|
#[derive(Debug)]
|
|
pub enum ApiError {
|
|
ProtectedSchedule,
|
|
InternalError(String),
|
|
}
|
|
|
|
impl ApiError {
|
|
pub fn get_code(&self) -> StatusCode {
|
|
match self {
|
|
ApiError::ProtectedSchedule => StatusCode::FORBIDDEN,
|
|
ApiError::InternalError(_) => StatusCode::INTERNAL_SERVER_ERROR,
|
|
}
|
|
}
|
|
}
|
|
|
|
impl From<&ApiError> for String {
|
|
fn from(err: &ApiError) -> Self {
|
|
match err {
|
|
ApiError::ProtectedSchedule => String::from("the targeted schedule is protected"),
|
|
ApiError::InternalError(msg) => msg.clone(),
|
|
}
|
|
}
|
|
}
|