use axum::response::IntoResponse; use sea_orm::DbErr; use tracing::error; use crate::errors::service_error::ServiceError; #[derive(Debug)] pub enum ApiError { ServiceError(ServiceError), } impl From for ApiError { fn from(err: ServiceError) -> Self { error!("Service error occurred: {:?}", err); ApiError::ServiceError(err) } } impl From for ApiError { fn from(err: DbErr) -> Self { ServiceError::from(err).into() } } impl IntoResponse for ApiError { fn into_response(self) -> axum::response::Response { error!("API error occurred: {:?}", self); match self { ApiError::ServiceError(service_error) => service_error.into_response(), } } }