diff --git a/src/main.rs b/src/main.rs index f3928de..b9721e8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -94,11 +94,10 @@ async fn create_user( #[get("/users")] async fn get_users(mut db: Connection) -> Result>, Status> { - let query = sqlx::query_as!( - User, + let query = sqlx::query!( r#" SELECT - id as "id: Uuid", + id as "id: String", username, email, display_name, @@ -107,15 +106,25 @@ async fn get_users(mut db: Connection) -> Result>, Status> { "# ) .fetch_all(&mut **db) - .await; + .await + .map_err(|e| { + eprintln!("Database error: {}", e); + Status::InternalServerError + })?; - match query { - Ok(users) => Ok(Json(users)), - Err(e) => { - eprintln!("Database error: {}", e); - Err(Status::InternalServerError) - } - } + // Convert the strings to UUIDs + let users = query + .into_iter() + .map(|row| User { + id: Uuid::parse_str(&row.id).unwrap(), + username: row.username, + email: row.email, + display_name: row.display_name, + created_at: row.created_at, + }) + .collect::>(); + + Ok(Json(users)) } #[delete("/users/")]