diff options
Diffstat (limited to 'src/routes/artist.rs')
-rw-r--r-- | src/routes/artist.rs | 44 |
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 { |