This commit is contained in:
Greg Shuflin
2025-02-01 04:26:32 -08:00
parent 745c7f0a63
commit 0245379b90

View File

@@ -94,11 +94,10 @@ async fn create_user(
#[get("/users")] #[get("/users")]
async fn get_users(mut db: Connection<Db>) -> Result<Json<Vec<User>>, Status> { async fn get_users(mut db: Connection<Db>) -> Result<Json<Vec<User>>, Status> {
let query = sqlx::query_as!( let query = sqlx::query!(
User,
r#" r#"
SELECT SELECT
id as "id: Uuid", id as "id: String",
username, username,
email, email,
display_name, display_name,
@@ -107,15 +106,25 @@ async fn get_users(mut db: Connection<Db>) -> Result<Json<Vec<User>>, Status> {
"# "#
) )
.fetch_all(&mut **db) .fetch_all(&mut **db)
.await; .await
.map_err(|e| {
match query {
Ok(users) => Ok(Json(users)),
Err(e) => {
eprintln!("Database error: {}", e); eprintln!("Database error: {}", e);
Err(Status::InternalServerError) 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::<Vec<_>>();
Ok(Json(users))
} }
#[delete("/users/<user_id>")] #[delete("/users/<user_id>")]