diff --git a/core/node/eigenda_proxy/src/errors.rs b/core/node/eigenda_proxy/src/errors.rs index 20431f90b20..f804ed47213 100644 --- a/core/node/eigenda_proxy/src/errors.rs +++ b/core/node/eigenda_proxy/src/errors.rs @@ -1,4 +1,7 @@ -use axum::response::{IntoResponse, Response}; +use axum::{ + http::StatusCode, + response::{IntoResponse, Response}, +}; #[derive(Debug, PartialEq)] pub enum MemStoreError { @@ -24,6 +27,21 @@ pub(crate) enum RequestProcessorError { impl IntoResponse for RequestProcessorError { fn into_response(self) -> Response { - unimplemented!("EigenDA request error into response") + let (status_code, message) = match self { + RequestProcessorError::EigenDA(err) => { + tracing::error!("EigenDA error: {:?}", err); + match err { + EigenDAError::TlsError => (StatusCode::BAD_GATEWAY, "Tls error".to_owned()), + EigenDAError::UriError => (StatusCode::BAD_GATEWAY, "Uri error".to_owned()), + EigenDAError::ConnectionError(err) => ( + StatusCode::BAD_GATEWAY, + format!("Connection error: {:?}", err).to_owned(), + ), + EigenDAError::PutError => (StatusCode::BAD_GATEWAY, "Put error".to_owned()), + EigenDAError::GetError => (StatusCode::BAD_GATEWAY, "Get error".to_owned()), + } + } + }; + (status_code, message).into_response() } }