From 1ee6873a60e0f2b129a4e47d5701fabe8a470b8c Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Mon, 4 May 2026 18:46:31 +0200 Subject: [PATCH] fix: address code review issues in SQLite adapter --- crates/adapters/sqlite/src/lib.rs | 13 ++++++------- crates/adapters/sqlite/src/models.rs | 6 ------ crates/adapters/sqlite/src/users.rs | 5 +---- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/crates/adapters/sqlite/src/lib.rs b/crates/adapters/sqlite/src/lib.rs index 5e37d3e..08dd529 100644 --- a/crates/adapters/sqlite/src/lib.rs +++ b/crates/adapters/sqlite/src/lib.rs @@ -76,6 +76,7 @@ impl SqliteMovieRepository { offset: i64, ) -> Result, DomainError> { match sort { + // ByRatingDesc only applies to user-scoped queries; falls back to date sort here SortDirection::Descending | SortDirection::ByRatingDesc => sqlx::query_as!( DiaryRow, "SELECT m.id, m.external_metadata_id, m.title, m.release_year, m.director, m.poster_path, @@ -116,6 +117,7 @@ impl SqliteMovieRepository { offset: i64, ) -> Result, DomainError> { match sort { + // ByRatingDesc only applies to user-scoped queries; falls back to date sort here SortDirection::Descending | SortDirection::ByRatingDesc => sqlx::query_as!( DiaryRow, "SELECT m.id, m.external_metadata_id, m.title, m.release_year, m.director, m.poster_path, @@ -438,13 +440,10 @@ impl MovieRepository for SqliteMovieRepository { )?, } } - (Some(mid), Some(uid)) => { - let mid_str = mid.value().to_string(); - let uid_str = uid.value().to_string(); - tokio::try_join!( - self.count_user_diary_entries(&uid_str), - self.fetch_movie_diary_rows(&mid_str, &filter.sort_by, limit, offset) - )? + (Some(_), Some(_)) => { + return Err(DomainError::ValidationError( + "Combined movie_id + user_id filter not supported".into(), + )); } }; diff --git a/crates/adapters/sqlite/src/models.rs b/crates/adapters/sqlite/src/models.rs index cd239e8..3f4abf7 100644 --- a/crates/adapters/sqlite/src/models.rs +++ b/crates/adapters/sqlite/src/models.rs @@ -183,12 +183,6 @@ pub(crate) struct DirectorCountRow { pub count: i64, } -#[derive(sqlx::FromRow)] -pub(crate) struct MonthCountRow { - pub month: String, - pub count: i64, -} - #[derive(sqlx::FromRow)] pub(crate) struct MonthlyRatingRow { pub month: String, diff --git a/crates/adapters/sqlite/src/users.rs b/crates/adapters/sqlite/src/users.rs index abbd511..945664e 100644 --- a/crates/adapters/sqlite/src/users.rs +++ b/crates/adapters/sqlite/src/users.rs @@ -113,10 +113,7 @@ impl UserRepository for SqliteUserRepository { ) .fetch_all(&self.pool) .await - .map_err(|e| { - tracing::error!("Database error: {:?}", e); - DomainError::InfrastructureError("Database operation failed".into()) - })? + .map_err(Self::map_err)? .into_iter() .map(UserSummaryRow::to_domain) .collect()