Files
YANPM/apps/api/src/errors/api_error.rs
2025-12-31 18:03:42 +08:00

33 lines
751 B
Rust

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<ServiceError> for ApiError {
fn from(err: ServiceError) -> Self {
error!("Service error occurred: {:?}", err);
ApiError::ServiceError(err)
}
}
impl From<DbErr> 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(),
}
}
}