user can add player while voting

This commit is contained in:
2024-10-04 21:00:53 +02:00
parent 9c8e8beaa6
commit 164184e5e9

View File

@@ -391,14 +391,19 @@ async fn post_player(req: Request<Incoming>, db: Arc<Mutex<SqlitePool>>) -> Resu
let name = data.get("name").unwrap().as_str().unwrap(); let name = data.get("name").unwrap().as_str().unwrap();
let pool = db.clone().lock().unwrap().clone(); let pool = db.clone().lock().unwrap().clone();
let mut conn = pool.acquire().await.unwrap(); let mut conn = pool.acquire().await.unwrap();
let r = sqlx::query!(r#"INSERT INTO players (name) VALUES (?1)"#, data).execute(&mut *conn).await; if let Ok(Some(player)) = sqlx::query!(r#"SELECT * FROM players WHERE name = ?1"#, name).fetch_optional(&pool).await {
let player = Player{id: player.id, name: player.name};
return Ok(Response::builder().body(Body::new(serde_json::to_string(&player).unwrap())).unwrap());
}
let r = sqlx::query!(r#"INSERT INTO players (name) VALUES (?1) RETURNING id"#, name).fetch_one(&mut *conn).await;
if r.is_err() { if r.is_err() {
return Ok(Response::builder() return Ok(Response::builder()
.status(StatusCode::INTERNAL_SERVER_ERROR) .status(StatusCode::INTERNAL_SERVER_ERROR)
.body(Body::Empty) .body(Body::Empty)
.unwrap()); .unwrap());
} }
ok().await let player = Player{id: r.unwrap().id, name: name.to_string()};
Ok(Response::builder().body(Body::new(serde_json::to_string(&player).unwrap())).unwrap())
} }
async fn post_admin( async fn post_admin(