From dcf4993f688593854f453b51033de02005b9ad5b Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Thu, 26 Mar 2026 17:38:16 -0400 Subject: [PATCH] Unified the track logic. Seems to work much better --- src/queries/tracks.rs | 7 +++++++ src/queries/wanted.rs | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/queries/tracks.rs b/src/queries/tracks.rs index 25ce75e..1ca5b6f 100644 --- a/src/queries/tracks.rs +++ b/src/queries/tracks.rs @@ -45,6 +45,13 @@ pub async fn get_by_path(db: &DatabaseConnection, file_path: &str) -> DbResult DbResult> { + Ok(Tracks::find() + .filter(track::Column::MusicbrainzId.eq(mbid)) + .all(db) + .await?) +} + pub async fn list(db: &DatabaseConnection, limit: u64, offset: u64) -> DbResult> { Ok(Tracks::find() .order_by_asc(track::Column::Artist) diff --git a/src/queries/wanted.rs b/src/queries/wanted.rs index faf4261..278ae77 100644 --- a/src/queries/wanted.rs +++ b/src/queries/wanted.rs @@ -81,6 +81,18 @@ pub async fn update_mbid( Ok(active.update(db).await?) } +pub async fn update_track_id( + db: &DatabaseConnection, + id: i32, + track_id: i32, +) -> DbResult { + let existing = get_by_id(db, id).await?; + let mut active: ActiveModel = existing.into(); + active.track_id = Set(Some(track_id)); + active.updated_at = Set(Utc::now().naive_utc()); + Ok(active.update(db).await?) +} + pub async fn find_by_mbid( db: &DatabaseConnection, musicbrainz_id: &str,