diff --git a/crates/dav/src/error.rs b/crates/dav/src/error.rs index 7f34dac..d80574b 100644 --- a/crates/dav/src/error.rs +++ b/crates/dav/src/error.rs @@ -7,14 +7,22 @@ use thiserror::Error; pub enum Error { #[error("Not found")] NotFound, + #[error("Bad request: {0}")] BadRequest(String), + #[error("Unauthorized")] Unauthorized, + #[error("Internal server error :(")] InternalError, + + #[error("prop {0} is read-only")] + PropReadOnly(String), + #[error(transparent)] XmlDecodeError(#[from] quick_xml::DeError), + #[error("Internal server error")] Other(#[from] anyhow::Error), } @@ -28,6 +36,7 @@ impl actix_web::error::ResponseError for Error { Self::BadRequest(_) => StatusCode::BAD_REQUEST, Self::Unauthorized => StatusCode::UNAUTHORIZED, Self::XmlDecodeError(_) => StatusCode::BAD_REQUEST, + Error::PropReadOnly(_) => StatusCode::CONFLICT, } }