fraiseql_error/
observer.rs1#[derive(Debug, thiserror::Error)]
2pub enum ObserverError {
3 #[error("Invalid condition: {message}")]
4 InvalidCondition { message: String },
5
6 #[error("Template error: {message}")]
7 TemplateError { message: String },
8
9 #[error("Action failed: {action} - {message}")]
10 ActionFailed { action: String, message: String },
11
12 #[error("Invalid configuration: {message}")]
13 InvalidConfig { message: String },
14
15 #[error("Event processing failed: {message}")]
16 ProcessingFailed { message: String },
17
18 #[error("Max retries exceeded for event {event_id}")]
19 MaxRetriesExceeded { event_id: String },
20
21 #[error("Database error: {0}")]
22 Database(#[from] sqlx::Error),
23}
24
25impl ObserverError {
26 pub const fn error_code(&self) -> &'static str {
27 match self {
28 Self::InvalidCondition { .. } => "observer_invalid_condition",
29 Self::TemplateError { .. } => "observer_template_error",
30 Self::ActionFailed { .. } => "observer_action_failed",
31 Self::InvalidConfig { .. } => "observer_invalid_config",
32 Self::ProcessingFailed { .. } => "observer_processing_failed",
33 Self::MaxRetriesExceeded { .. } => "observer_max_retries",
34 Self::Database(_) => "observer_database_error",
35 }
36 }
37}