diff options
author | niliara-edu <nil.jimeno@estudiant.fjaverianas.com> | 2025-01-20 22:15:14 +0100 |
---|---|---|
committer | niliara-edu <nil.jimeno@estudiant.fjaverianas.com> | 2025-01-20 22:15:14 +0100 |
commit | 58515ddfecd3701112616c33ad4879dae4b38ffd (patch) | |
tree | 6a3046b9005aa5247f5e077849409acdc62f17ce /src/routes/song.rs | |
parent | daa7aea33439a91c4dd14592d1909d78ebe472e2 (diff) |
save before disaster
Diffstat (limited to 'src/routes/song.rs')
-rw-r--r-- | src/routes/song.rs | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/routes/song.rs b/src/routes/song.rs index 27197dd..97513f6 100644 --- a/src/routes/song.rs +++ b/src/routes/song.rs @@ -12,26 +12,34 @@ struct SongQueryOptions { } #[get("/song")] -pub async fn song( +pub async fn get_song( app_state: web::Data<AppState>, get_args: web::Query<SongQueryOptions>, ) -> 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<Song>> = + app_state.database.select_song_by_id(id).await; + + return match search_attempt { + Ok(song_list) => HttpResponse::Ok().json(song_list), + Err(e) => HttpResponse::Ok().body(format!("{}", e)), + }; + } + let search_attempt: sqlx::Result<Vec<Song>> = match true { - _ if get_args.id.is_some() => { - let id: &str = &get_args.id.as_ref().unwrap_or(&default); - app_state.database.select_song_by_id(id).await - } _ if get_args.name.is_some() => { - let name: &str = &get_args.name.as_ref().unwrap_or(&default); + let name: &str = get_args.name.as_ref().unwrap_or(&default); app_state.database.select_songs_by_name(name).await } _ if get_args.album.is_some() => { - let album: &str = &get_args.album.as_ref().unwrap_or(&default); + let album: &str = get_args.album.as_ref().unwrap_or(&default); app_state.database.select_songs_by_album(album).await } _ if get_args.artist.is_some() => { - let artist: &str = &get_args.artist.as_ref().unwrap_or(&default); + let artist: &str = get_args.artist.as_ref().unwrap_or(&default); app_state.database.select_songs_by_artist(artist).await } _ => app_state.database.select_songs().await, @@ -42,3 +50,11 @@ pub async fn song( Err(e) => HttpResponse::Ok().body(format!("{}", e)), } } + +// #[post("/song")] +// pub async fn post_song( +// app_state: web::Data<AppState>, +// get_args: web::Query<SongQueryOptions>, +// ) -> HttpResponse { +// HttpResponse::Ok().body("Post carried successfully") +// } |