From 90f9c4a532354086a745e274c36f289a496bd498 Mon Sep 17 00:00:00 2001 From: LJ Date: Wed, 4 Jun 2025 21:32:59 -0700 Subject: [PATCH] fix: respond with an error object when got error --- src/service/error.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/service/error.rs b/src/service/error.rs index 477321046..bb57cec5c 100644 --- a/src/service/error.rs +++ b/src/service/error.rs @@ -1,14 +1,14 @@ -use anyhow::anyhow; +use crate::prelude::*; + use axum::{ + Json, http::StatusCode, response::{IntoResponse, Response}, }; -use log::debug; use pyo3::{exceptions::PyException, prelude::*}; use std::{ error::Error, fmt::{Debug, Display}, - sync::Arc, }; #[derive(Debug)] @@ -38,10 +38,18 @@ impl Error for ApiError { } } +#[derive(Serialize)] +struct ErrorResponse { + error: String, +} + impl IntoResponse for ApiError { fn into_response(self) -> Response { debug!("Internal server error:\n{:?}", self.err); - (self.status_code, format!("{:#}", self.err)).into_response() + let error_response = ErrorResponse { + error: self.err.to_string(), + }; + (self.status_code, Json(error_response)).into_response() } }