Implement leave game
Dependencies
- [2]
5RQCVFRHStart leave game form - [3]
NY766BOQAccept form to add player - [4]
AEWYJHUDStart to show player list - [5]
TEB4R7OUAdd form to join game - [6]
H7NQUYI6Record join to the game - [*]
6NYILMKIAdd page for slow game
Change contents
- replacement in src/templates/slow-game.html at line 79
<form id="leave-game" action="lave-game.do" method="post"><form id="leave-game" action="leave-game.do" method="post"> - replacement in src/pages/slow_game.rs at line 153
let join_data = if !has_itself && status.is_none() {let (join_data, leave_data) = if !has_itself && status.is_none() { - replacement in src/pages/slow_game.rs at line 161
Some(JoinLeaveData { csrf })(Some(JoinLeaveData { csrf }), None)} else if has_itself && status.is_none() {let csrf = Uuid::new_v4();let mut cache = data.cache_leave_game.lock().await;cache.insert(csrf,(gameuid.clone(), user.to_lowercase()),std::time::Duration::from_secs(data.cache_duration_sec),);(None, Some(JoinLeaveData { csrf })) - replacement in src/pages/slow_game.rs at line 172
None(None, None) - replacement in src/pages/slow_game.rs at line 175
(Some(users), join_data, None)(Some(users), join_data, leave_data) - replacement in src/pages/slow_game.rs at line 280
_data_rw: web::Data<DataBaseRw>,data_rw: web::Data<DataBaseRw>, - edit in src/pages/slow_game.rs at line 304
let dbclient_rw = match data_rw.0.get().await {Ok(c) => c,Err(e) => {log::error!("Pool RW error {}", e);return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());}};let stmt = match dbclient_rw.prepare("delete from games.players where game_uid = $1 and player_name = $2;").await{Ok(stmt) => stmt,Err(e) => {log::error!("Pool RW statement error {}", e);return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());}};let inserted = match dbclient_rw.execute(&stmt, &[&cached_data.0, &cached_data.1]).await{Ok(c) => c,Err(e) => {log::error!("Pool RW execute insert error {}", e);return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());}};if inserted == 0 {log::error!("Pool RW execute insert row error");return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());}