summaryrefslogtreecommitdiff
path: root/src/routes/artist.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/artist.rs')
-rw-r--r--src/routes/artist.rs44
1 files changed, 11 insertions, 33 deletions
diff --git a/src/routes/artist.rs b/src/routes/artist.rs
index 6a16ace..8d968ae 100644
--- a/src/routes/artist.rs
+++ b/src/routes/artist.rs
@@ -1,4 +1,4 @@
-use crate::routes::Artist;
+use crate::database::Artist;
use crate::AppState;
use actix_web::{get, web, HttpResponse};
use serde::Deserialize;
@@ -14,42 +14,20 @@ pub async fn artist(
app_state: web::Data<AppState>,
get_args: web::Query<ArtistQueryOptions>,
) -> HttpResponse {
- let search_attempt: sqlx::Result<Vec<Artist>>;
-
- match true {
+ let search_attempt: sqlx::Result<Vec<Artist>, sqlx::Error> = match true {
_ if check_if_exists(&get_args.id) => {
- search_attempt = sqlx::query_as!(
- Artist,
- "SELECT name, id
- FROM artist
- WHERE id=?",
- &get_args.id,
- )
- .fetch_all(&app_state.pool)
- .await;
+ app_state
+ .database
+ .select_artist_by_id(&get_args.id.clone().unwrap())
+ .await
}
_ if check_if_exists(&get_args.name) => {
- let new_name : String = format!("{}{}{}", "%", &get_args.name.clone().unwrap(), "%");
- search_attempt = sqlx::query_as!(
- Artist,
- "SELECT name, id
- FROM artist
- WHERE LOWER(name) LIKE LOWER(?)",
- new_name,
- )
- .fetch_all(&app_state.pool)
- .await;
- }
- _ => {
- search_attempt = sqlx::query_as!(
- Artist,
- "SELECT name, id
- FROM artist
- ",
- )
- .fetch_all(&app_state.pool)
- .await;
+ app_state
+ .database
+ .select_artists_by_name(&get_args.name.clone().unwrap())
+ .await
}
+ _ => app_state.database.select_artists().await,
};
match search_attempt {