forked from alemi/upub
fix: better errors for debug getter
This commit is contained in:
parent
876cf19327
commit
c6628973ca
1 changed files with 9 additions and 6 deletions
|
@ -87,6 +87,7 @@ impl axum::response::IntoResponse for UpubError {
|
||||||
// TODO it's kind of jank to hide this print down here, i should probably learn how spans work
|
// TODO it's kind of jank to hide this print down here, i should probably learn how spans work
|
||||||
// in tracing and use the library's features but ehhhh
|
// in tracing and use the library's features but ehhhh
|
||||||
tracing::debug!("emitting error response: {self:?}");
|
tracing::debug!("emitting error response: {self:?}");
|
||||||
|
let descr = self.to_string();
|
||||||
match self {
|
match self {
|
||||||
UpubError::Redirect(to) => Redirect::to(&to).into_response(),
|
UpubError::Redirect(to) => Redirect::to(&to).into_response(),
|
||||||
UpubError::Status(status) => status.into_response(),
|
UpubError::Status(status) => status.into_response(),
|
||||||
|
@ -94,7 +95,7 @@ impl axum::response::IntoResponse for UpubError {
|
||||||
StatusCode::SERVICE_UNAVAILABLE,
|
StatusCode::SERVICE_UNAVAILABLE,
|
||||||
axum::Json(serde_json::json!({
|
axum::Json(serde_json::json!({
|
||||||
"error": "database",
|
"error": "database",
|
||||||
"description": format!("{e:#?}"),
|
"inner": format!("{e:#?}"),
|
||||||
}))
|
}))
|
||||||
).into_response(),
|
).into_response(),
|
||||||
UpubError::Reqwest(x) | UpubError::FetchError(x, _) => (
|
UpubError::Reqwest(x) | UpubError::FetchError(x, _) => (
|
||||||
|
@ -103,7 +104,8 @@ impl axum::response::IntoResponse for UpubError {
|
||||||
"error": "request",
|
"error": "request",
|
||||||
"status": x.status().map(|s| s.to_string()).unwrap_or_default(),
|
"status": x.status().map(|s| s.to_string()).unwrap_or_default(),
|
||||||
"url": x.url().map(|x| x.to_string()).unwrap_or_default(),
|
"url": x.url().map(|x| x.to_string()).unwrap_or_default(),
|
||||||
"description": format!("{x:#?}"),
|
"description": descr,
|
||||||
|
"inner": format!("{x:#?}"),
|
||||||
}))
|
}))
|
||||||
).into_response(),
|
).into_response(),
|
||||||
UpubError::Field(x) => (
|
UpubError::Field(x) => (
|
||||||
|
@ -111,7 +113,7 @@ impl axum::response::IntoResponse for UpubError {
|
||||||
axum::Json(serde_json::json!({
|
axum::Json(serde_json::json!({
|
||||||
"error": "field",
|
"error": "field",
|
||||||
"field": x.0.to_string(),
|
"field": x.0.to_string(),
|
||||||
"description": format!("missing required field from request: '{}'", x.0),
|
"description": descr,
|
||||||
}))
|
}))
|
||||||
).into_response(),
|
).into_response(),
|
||||||
UpubError::Mismatch(expected, found) => (
|
UpubError::Mismatch(expected, found) => (
|
||||||
|
@ -120,14 +122,15 @@ impl axum::response::IntoResponse for UpubError {
|
||||||
"error": "type",
|
"error": "type",
|
||||||
"expected": expected.as_ref().to_string(),
|
"expected": expected.as_ref().to_string(),
|
||||||
"found": found.as_ref().to_string(),
|
"found": found.as_ref().to_string(),
|
||||||
"description": self.to_string(),
|
"description": descr,
|
||||||
}))
|
}))
|
||||||
).into_response(),
|
).into_response(),
|
||||||
_ => (
|
x => (
|
||||||
StatusCode::INTERNAL_SERVER_ERROR,
|
StatusCode::INTERNAL_SERVER_ERROR,
|
||||||
axum::Json(serde_json::json!({
|
axum::Json(serde_json::json!({
|
||||||
"error": "unknown",
|
"error": "unknown",
|
||||||
"description": self.to_string(),
|
"description": descr,
|
||||||
|
"inner": format!("{x:#?}"),
|
||||||
}))
|
}))
|
||||||
).into_response(),
|
).into_response(),
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue