From c6452609d6865835567c80d8b92daf265081069b Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Wed, 18 Mar 2026 15:35:58 -0400 Subject: [PATCH] Formatting --- src/lib.rs | 4 +- .../m20260317_000001_create_artists.rs | 1 + .../m20260317_000003_create_tracks.rs | 7 +++- src/queries/albums.rs | 9 ++--- src/queries/artists.rs | 27 ++++++++++---- src/queries/tracks.rs | 6 ++- src/queries/wanted.rs | 2 +- tests/integration.rs | 37 ++++++++++++------- 8 files changed, 60 insertions(+), 33 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 6935b58..28dafdd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -33,9 +33,7 @@ impl Database { .min_connections(1) .sqlx_logging(false); - let conn = SeaDatabase::connect(opts) - .await - .map_err(DbError::SeaOrm)?; + let conn = SeaDatabase::connect(opts).await.map_err(DbError::SeaOrm)?; // Enable WAL mode for better concurrent read performance if database_url.starts_with("sqlite:") && !database_url.contains(":memory:") { diff --git a/src/migration/m20260317_000001_create_artists.rs b/src/migration/m20260317_000001_create_artists.rs index bd712ff..fa4be2c 100644 --- a/src/migration/m20260317_000001_create_artists.rs +++ b/src/migration/m20260317_000001_create_artists.rs @@ -74,6 +74,7 @@ impl MigrationTrait for Migration { } #[derive(DeriveIden)] +#[allow(clippy::enum_variant_names)] pub(crate) enum Artists { Table, Id, diff --git a/src/migration/m20260317_000003_create_tracks.rs b/src/migration/m20260317_000003_create_tracks.rs index d802431..9c0d558 100644 --- a/src/migration/m20260317_000003_create_tracks.rs +++ b/src/migration/m20260317_000003_create_tracks.rs @@ -21,7 +21,12 @@ impl MigrationTrait for Migration { .auto_increment() .primary_key(), ) - .col(ColumnDef::new(Tracks::FilePath).text().not_null().unique_key()) + .col( + ColumnDef::new(Tracks::FilePath) + .text() + .not_null() + .unique_key(), + ) .col(ColumnDef::new(Tracks::Title).text()) .col(ColumnDef::new(Tracks::Artist).text()) .col(ColumnDef::new(Tracks::Album).text()) diff --git a/src/queries/albums.rs b/src/queries/albums.rs index a5de1b0..fc681a2 100644 --- a/src/queries/albums.rs +++ b/src/queries/albums.rs @@ -10,14 +10,13 @@ pub async fn upsert( musicbrainz_id: Option<&str>, artist_id: Option, ) -> DbResult { - if let Some(mbid) = musicbrainz_id { - if let Some(existing) = Albums::find() + if let Some(mbid) = musicbrainz_id + && let Some(existing) = Albums::find() .filter(album::Column::MusicbrainzId.eq(mbid)) .one(db) .await? - { - return Ok(existing); - } + { + return Ok(existing); } if let Some(existing) = find_by_name_and_artist(db, name, album_artist).await? { diff --git a/src/queries/artists.rs b/src/queries/artists.rs index 4fc2868..3c187b2 100644 --- a/src/queries/artists.rs +++ b/src/queries/artists.rs @@ -4,16 +4,19 @@ use sea_orm::*; use crate::entities::artist::{self, ActiveModel, Entity as Artists, Model as Artist}; use crate::error::{DbError, DbResult}; -pub async fn upsert(db: &DatabaseConnection, name: &str, musicbrainz_id: Option<&str>) -> DbResult { +pub async fn upsert( + db: &DatabaseConnection, + name: &str, + musicbrainz_id: Option<&str>, +) -> DbResult { // Try to find by musicbrainz_id first, then by name - if let Some(mbid) = musicbrainz_id { - if let Some(existing) = Artists::find() + if let Some(mbid) = musicbrainz_id + && let Some(existing) = Artists::find() .filter(artist::Column::MusicbrainzId.eq(mbid)) .one(db) .await? - { - return Ok(existing); - } + { + return Ok(existing); } if let Some(existing) = find_by_name(db, name).await? { @@ -80,14 +83,22 @@ pub async fn update(db: &DatabaseConnection, id: i32, model: ActiveModel) -> DbR Ok(active.update(db).await?) } -pub async fn update_top_songs(db: &DatabaseConnection, id: i32, top_songs_json: &str) -> DbResult { +pub async fn update_top_songs( + db: &DatabaseConnection, + id: i32, + top_songs_json: &str, +) -> DbResult { let existing = get_by_id(db, id).await?; let mut active: ActiveModel = existing.into(); active.top_songs = Set(top_songs_json.to_string()); Ok(active.update(db).await?) } -pub async fn update_similar_artists(db: &DatabaseConnection, id: i32, similar_json: &str) -> DbResult { +pub async fn update_similar_artists( + db: &DatabaseConnection, + id: i32, + similar_json: &str, +) -> DbResult { let existing = get_by_id(db, id).await?; let mut active: ActiveModel = existing.into(); active.similar_artists = Set(similar_json.to_string()); diff --git a/src/queries/tracks.rs b/src/queries/tracks.rs index 3aba458..074b175 100644 --- a/src/queries/tracks.rs +++ b/src/queries/tracks.rs @@ -106,7 +106,11 @@ pub async fn get_needing_metadata(db: &DatabaseConnection) -> DbResult DbResult { +pub async fn update_metadata( + db: &DatabaseConnection, + id: i32, + model: ActiveModel, +) -> DbResult { let mut active = model; active.id = Set(id); active.updated_at = Set(Utc::now().naive_utc()); diff --git a/src/queries/wanted.rs b/src/queries/wanted.rs index 6a895e3..d316a75 100644 --- a/src/queries/wanted.rs +++ b/src/queries/wanted.rs @@ -1,6 +1,6 @@ use chrono::Utc; -use sea_orm::*; use sea_orm::sea_query::Expr; +use sea_orm::*; use crate::entities::wanted_item::{ self, ActiveModel, Entity as WantedItems, ItemType, Model as WantedItem, WantedStatus, diff --git a/tests/integration.rs b/tests/integration.rs index 6e96fb0..d565319 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -5,7 +5,9 @@ use shanty_db::entities::wanted_item::{ItemType, WantedStatus}; use shanty_db::{Database, queries}; async fn test_db() -> Database { - Database::new("sqlite::memory:").await.expect("failed to create test database") + Database::new("sqlite::memory:") + .await + .expect("failed to create test database") } #[tokio::test] @@ -163,9 +165,17 @@ async fn test_wanted_items_lifecycle() { .unwrap(); // Add wanted item - let item = queries::wanted::add(conn, ItemType::Artist, "Radiohead", None, Some(artist.id), None, None) - .await - .unwrap(); + let item = queries::wanted::add( + conn, + ItemType::Artist, + "Radiohead", + None, + Some(artist.id), + None, + None, + ) + .await + .unwrap(); assert_eq!(item.status, WantedStatus::Wanted); assert_eq!(item.item_type, ItemType::Artist); @@ -219,14 +229,9 @@ async fn test_download_queue_lifecycle() { assert!(next.is_none()); // Fail it - queries::downloads::update_status( - conn, - item.id, - DownloadStatus::Failed, - Some("network error"), - ) - .await - .unwrap(); + queries::downloads::update_status(conn, item.id, DownloadStatus::Failed, Some("network error")) + .await + .unwrap(); // List failed let failed = queries::downloads::list(conn, Some(DownloadStatus::Failed)) @@ -236,7 +241,9 @@ async fn test_download_queue_lifecycle() { assert_eq!(failed[0].error_message.as_deref(), Some("network error")); // Retry - queries::downloads::retry_failed(conn, item.id).await.unwrap(); + queries::downloads::retry_failed(conn, item.id) + .await + .unwrap(); let pending = queries::downloads::list(conn, Some(DownloadStatus::Pending)) .await .unwrap(); @@ -286,7 +293,9 @@ async fn test_search_cache_ttl() { .await .unwrap(); - let purged = queries::cache::purge_prefix(conn, "artist_totals:").await.unwrap(); + let purged = queries::cache::purge_prefix(conn, "artist_totals:") + .await + .unwrap(); assert_eq!(purged, 2); // other_key should still exist