From dbb25297da61fe393ca1e8a6b6c6beace2513e0a Mon Sep 17 00:00:00 2001 From: Dawid Rycerz Date: Mon, 14 Jul 2025 21:27:03 +0300 Subject: feat: fix user_id in requests missing --- src/users.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/users.rs') diff --git a/src/users.rs b/src/users.rs index 0cfa440..129bf15 100644 --- a/src/users.rs +++ b/src/users.rs @@ -77,6 +77,14 @@ impl<'a> UserRepository<'a> { .await?; Ok(()) } + + pub async fn any_admin_exists(&self) -> Result { + let count: (i64,) = sqlx::query_as("SELECT COUNT(*) FROM users WHERE role = ?") + .bind(UserRole::Admin) + .fetch_one(self.db) + .await?; + Ok(count.0 > 0) + } } #[cfg(test)] @@ -141,4 +149,18 @@ mod tests { let users = repo.list_users().await.unwrap(); assert_eq!(users.len(), 2); } + + #[tokio::test] + async fn test_any_admin_exists() { + let db = setup_db().await; + let repo = UserRepository { db: &db }; + // No admin yet + assert!(!repo.any_admin_exists().await.unwrap()); + // Add a user (not admin) + repo.create_user(None, Some(UserRole::User)).await.unwrap(); + assert!(!repo.any_admin_exists().await.unwrap()); + // Add an admin + repo.create_user(None, Some(UserRole::Admin)).await.unwrap(); + assert!(repo.any_admin_exists().await.unwrap()); + } } -- cgit v1.2.3