From 7a44e7fa6b344a87eda2e14d7ce1cf55e8f0cc42 Mon Sep 17 00:00:00 2001 From: Warren Date: Sat, 16 May 2026 20:49:54 +0800 Subject: [PATCH] fix: Correct pg_client.rs fetch_admins and server.rs AppState - Remove duplicate fetch_admins definitions - Use tokio_postgres client.query() instead of sqlx - Fix sync_admins() call in full_sync() - Add AppState.auth field to hold AuthState - Update admin handlers to use AppState All tests passing: - Admin sync: working - Admin login: token generated - Admin verify: username verified - SQLite: admin record exists --- src/pg_client.rs | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/src/pg_client.rs b/src/pg_client.rs index ba9937b..e1de92f 100644 --- a/src/pg_client.rs +++ b/src/pg_client.rs @@ -106,29 +106,32 @@ impl PgClient { } pub async fn fetch_admins(&self) -> Result> { - let rows = sqlx::query!( - "SELECT username, password as password_hash, - email, description, status, permissions, filters, - role_id, last_login, created_at, updated_at - FROM admins WHERE status = 1" - ) - .fetch_all(&self.pool) - .await?; + let client = self.connect().await?; + + let rows = client + .query( + "SELECT username, password, email, description, status, + permissions, filters, role_id, last_login, + created_at, updated_at + FROM admins WHERE status = 1", + &[], + ) + .await?; let admins = rows .into_iter() .map(|row| PgAdmin { - username: row.username, - password_hash: row.password_hash, - email: row.email, - description: row.description, - status: row.status, - permissions: row.permissions, - filters: row.filters, - role_id: row.role_id.map(|v| v as i32), - last_login: row.last_login, - created_at: row.created_at, - updated_at: row.updated_at, + username: row.get::<_, String>(0), + password_hash: row.get::<_, String>(1), + email: row.get::<_, Option>(2), + description: row.get::<_, Option>(3), + status: row.get::<_, i32>(4), + permissions: row.get::<_, String>(5), + filters: row.get::<_, Option>(6), + role_id: row.get::<_, Option>(7), + last_login: row.get::<_, i64>(8), + created_at: row.get::<_, i64>(9), + updated_at: row.get::<_, i64>(10), }) .collect();