diff --git a/src/api/album.rs b/src/api/album.rs index 8d62d95..33a5299 100644 --- a/src/api/album.rs +++ b/src/api/album.rs @@ -13,25 +13,20 @@ cfg_if! { } } -// #[server(endpoint = "album/get")] -// pub async fn get_album(id: Option) -> Result { -// let db_con = &mut get_db_conn(); -// let album = Album::get_album(id,db_con) -// .map_err(|e| ServerFnError::::ServerError(format!("Error getting album: {}", e)))?; -// Ok(album) -// } +#[server(endpoint = "album/get")] +pub async fn get_album(id: i32) -> Result { + let db_con = &mut get_db_conn(); + let album = Album::get_album(id,db_con) + .map_err(|e| ServerFnError::::ServerError(format!("Error getting album: {}", e)))?; + Ok(album) +} -// #[server(endpoint = "album/get_songs")] -// pub async fn get_songs(album: Option) -> Result, ServerFnError> { -// let db_con = &mut get_db_conn(); -// let songs = album.get_songs(db_con) -// .map_err(|e| ServerFnError::::ServerError(format!("Error getting album: {}", e)))?; -// Ok(songs) -// } - -// #[server(endpoint = "album/get_song_list")] -// pub async fn get_song_data(album: Option) -> Result, ServerFnError> { -// let user = get_user().await?; -// let db_con = &mut get_db_conn(); -// // TODO: NEEDS SONG DATA QUERIES -// } +#[server(endpoint = "album/get_songs")] +pub async fn get_songs(id: i32) -> Result, ServerFnError> { + let user = get_user().await?; + let db_con = &mut get_db_conn(); + // TODO: NEEDS SONG DATA QUERIES + let songdata = Album::get_song_data(id,user.id.unwrap(),db_con) + .map_err(|e| ServerFnError::::ServerError(format!("Error getting song data: {}", e)))?; + Ok(songdata) +} \ No newline at end of file diff --git a/src/app.rs b/src/app.rs index 689e9cd..e3e9226 100644 --- a/src/app.rs +++ b/src/app.rs @@ -43,7 +43,7 @@ pub fn App() -> impl IntoView { - // + diff --git a/src/models.rs b/src/models.rs index 46475f9..ed28ba6 100644 --- a/src/models.rs +++ b/src/models.rs @@ -540,7 +540,7 @@ impl Album { /// * `Result>` - A result indicating success with the desired album, or an error /// #[cfg(feature = "ssr")] - pub fn get_album(album_id: i32, user_id: i32, conn: &mut PgPooledConn) -> Result> { + pub fn get_album(album_id: i32, conn: &mut PgPooledConn) -> Result> { use crate::schema::albums::dsl::*; use crate::database::get_db_conn; diff --git a/src/pages/albumpage.rs b/src/pages/albumpage.rs index 915d9f4..392cc9b 100644 --- a/src/pages/albumpage.rs +++ b/src/pages/albumpage.rs @@ -3,6 +3,7 @@ use leptos::*; use leptos_router::*; use crate::models::*; use crate::components::song_list::*; +use crate::api::album::*; #[derive(Params, PartialEq)] @@ -10,7 +11,6 @@ struct AlbumParams { id: i32 } -/* #[component] pub fn AlbumPage() -> impl IntoView { let params = use_params::(); @@ -26,8 +26,8 @@ pub fn AlbumPage() -> impl IntoView { id, |value| async move { match value { - Ok(v) => {get_album(v).await}, - Err(e) => {Err(ServerFnError::Request("Invalid album!".into()))}, + Ok(v) => {get_songs(v).await}, + Err(e) => {Err(ServerFnError::Request(format!("Error getting song data: {}", e).into()))}, } }, ); @@ -40,7 +40,7 @@ pub fn AlbumPage() -> impl IntoView { song_list.with( |song_list| { match song_list { Some(Ok(s)) => { - view! { }.into_view() + view! { }.into_view() }, Some(Err(e)) => { view! {
"Error loading albums: :e"
}.into_view() @@ -52,4 +52,4 @@ pub fn AlbumPage() -> impl IntoView { } } -*/ +