summaryrefslogtreecommitdiff
path: root/src/routes/search_results.rs
diff options
context:
space:
mode:
authorniliara-edu <nil.jimeno@estudiant.fjaverianas.com>2025-01-20 22:15:14 +0100
committerniliara-edu <nil.jimeno@estudiant.fjaverianas.com>2025-01-20 22:15:14 +0100
commit58515ddfecd3701112616c33ad4879dae4b38ffd (patch)
tree6a3046b9005aa5247f5e077849409acdc62f17ce /src/routes/search_results.rs
parentdaa7aea33439a91c4dd14592d1909d78ebe472e2 (diff)
save before disaster
Diffstat (limited to 'src/routes/search_results.rs')
-rw-r--r--src/routes/search_results.rs38
1 files changed, 21 insertions, 17 deletions
diff --git a/src/routes/search_results.rs b/src/routes/search_results.rs
index 5c9efb8..3056aef 100644
--- a/src/routes/search_results.rs
+++ b/src/routes/search_results.rs
@@ -14,18 +14,29 @@ pub async fn search_results(
app_state: web::Data<AppState>,
get_args: web::Query<SearchQueryOptions>,
) -> HttpResponse {
+ let default: String = String::from("");
+
+ if get_args.id.is_some() {
+ let id: &str = get_args.id.as_ref().unwrap_or(&default);
+ let search_attempt: (
+ sqlx::Result<Option<Artist>, sqlx::Error>,
+ sqlx::Result<Option<Album>, sqlx::Error>,
+ sqlx::Result<Option<Song>, sqlx::Error>,
+ ) = { app_state.database.search_results_by_id(id).await };
+
+ return HttpResponse::Ok().json((
+ search_attempt.0.unwrap_or(None),
+ search_attempt.1.unwrap_or(None),
+ search_attempt.2.unwrap_or(None),
+ ));
+ };
+
let search_attempt: (
sqlx::Result<Vec<Artist>, sqlx::Error>,
sqlx::Result<Vec<Album>, sqlx::Error>,
sqlx::Result<Vec<Song>, sqlx::Error>,
) = match true {
- _ if check_if_exists(&get_args.id) => {
- app_state
- .database
- .search_results_by_id(&get_args.id.clone().unwrap())
- .await
- }
- _ if check_if_exists(&get_args.name) => {
+ _ if get_args.name.is_some() => {
app_state
.database
.search_results_by_name(&get_args.name.clone().unwrap())
@@ -37,15 +48,8 @@ pub async fn search_results(
};
return HttpResponse::Ok().json((
- search_attempt.0.unwrap_or_else(|_| return Vec::new()),
- search_attempt.1.unwrap_or_else(|_| return Vec::new()),
- search_attempt.2.unwrap_or_else(|_| return Vec::new()),
+ search_attempt.0.unwrap_or(Vec::new()),
+ search_attempt.1.unwrap_or(Vec::new()),
+ search_attempt.2.unwrap_or(Vec::new()),
));
}
-
-fn check_if_exists(value: &Option<String>) -> bool {
- match value {
- Some(_) => true,
- None => false,
- }
-}