reinhardt_admin/types/
errors.rs1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum AdminError {
8 #[error("Model '{0}' is not registered with admin")]
10 ModelNotRegistered(String),
11
12 #[error("Permission denied: {0}")]
14 PermissionDenied(String),
15
16 #[error("Invalid action: {0}")]
18 InvalidAction(String),
19
20 #[error("Database error: {0}")]
22 DatabaseError(String),
23
24 #[error("Validation error: {0}")]
26 ValidationError(String),
27
28 #[error("Template rendering error: {0}")]
30 TemplateError(String),
31}
32
33pub type AdminResult<T> = Result<T, AdminError>;
35
36impl From<AdminError> for reinhardt_core::exception::Error {
38 fn from(err: AdminError) -> Self {
39 match err {
40 AdminError::ModelNotRegistered(msg) => reinhardt_core::exception::Error::NotFound(msg),
41 AdminError::PermissionDenied(msg) => {
42 reinhardt_core::exception::Error::Authorization(msg)
43 }
44 AdminError::InvalidAction(msg) => reinhardt_core::exception::Error::Http(msg),
45 AdminError::DatabaseError(msg) => reinhardt_core::exception::Error::Database(msg),
46 AdminError::ValidationError(msg) => reinhardt_core::exception::Error::Validation(msg),
47 AdminError::TemplateError(msg) => {
48 reinhardt_core::exception::Error::Other(anyhow::anyhow!(msg))
49 }
50 }
51 }
52}