Skip to content

Commit 32aaf46

Browse files
committed
Include status code in the response
1 parent aee103c commit 32aaf46

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/web/releases.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -271,9 +271,12 @@ fn handle_registry_error(err: anyhow::Error) -> Result<SearchResult, SearchError
271271
}
272272

273273
//Error message to gracefully display
274-
fn create_search_error_response(query: String, sort_by: String) -> Search {
274+
fn create_search_error_response(query: String, sort_by: String, error_message: String) -> Search {
275275
Search {
276-
title: "Search service is not currently available".to_owned(),
276+
title: format!(
277+
"Search service is not currently available: {}",
278+
error_message
279+
),
277280
releases: vec![],
278281
search_query: Some(query),
279282
search_sort_by: Some(sort_by),
@@ -655,9 +658,9 @@ pub(crate) async fn search_handler(
655658

656659
let search_result = match search_result {
657660
Ok(result) => result,
658-
Err(SearchError::CratesIo(_)) => {
661+
Err(SearchError::CratesIo(error_message)) => {
659662
// Return a user-friendly error response
660-
return Ok(create_search_error_response(query, sort_by).into_response());
663+
return Ok(create_search_error_response(query, sort_by, error_message).into_response());
661664
}
662665
Err(SearchError::Other(err)) => {
663666
// For other errors, propagate them normally
@@ -1315,7 +1318,7 @@ mod tests {
13151318
.await
13161319
.get("/releases/search?query=doesnt_matter_here")
13171320
.await?;
1318-
assert_eq!(response.status(), 500);
1321+
assert_eq!(response.status(), 503);
13191322

13201323
assert!(response.text().await?.contains(&format!("{status}")));
13211324
Ok(())

0 commit comments

Comments
 (0)