From a7905624a6dadcfa10fd81644348e8d4b2fea580 Mon Sep 17 00:00:00 2001 From: Aidan Westphal Date: Wed, 4 Dec 2024 05:29:16 +0000 Subject: [PATCH] Bugfixes --- src/models.rs | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/models.rs b/src/models.rs index 40fd7f9..a64a4ed 100644 --- a/src/models.rs +++ b/src/models.rs @@ -542,24 +542,14 @@ impl Album { pub fn get_album_data(album_id: i32, conn: &mut PgPooledConn) -> Result> { use crate::schema::*; - let album: Vec<(Album, std::option::Option)> = albums::table - .find(album_id) - .left_join(songs::table.on(albums::id.nullable().eq(songs::album_id))) - .left_join(song_artists::table.inner_join(artists::table).on(songs::id.eq(song_artists::song_id))) - .select(( - albums::all_columns, - artists::all_columns.nullable() - )) - .distinct() + let artist_list: Vec = album_artists::table + .filter(album_artists::album_id.eq(album_id)) + .inner_join(artists::table.on(album_artists::artist_id.eq(artists::id))) + .select( + artists::all_columns + ) .load(conn)?; - let mut artist_list: Vec = Vec::new(); - - for (_, artist) in album { - if let Some(artist) = artist { - artist_list.push(artist); - } - } // Get info of album let albuminfo = albums::table .filter(albums::id.eq(album_id)) @@ -671,7 +661,7 @@ impl Album { // Sort the songs by date let mut songdata: Vec = album_songs.into_values().collect(); - songdata.sort_by(|a, b| b.track.cmp(&a.track)); + songdata.sort_by(|a, b| a.track.cmp(&b.track)); Ok(songdata) } }