Implement leave game

O01eg
Oct 22, 2022, 9:54 AM
XTHO73VKH6MKZBUVDRP77NLO6IVSVRFAJR3HOSD7Q7HLZSQKLVWAC

Dependencies

Change contents

  • replacement in src/templates/slow-game.html at line 79
    [2.47][2.47:106]()
    <form id="leave-game" action="lave-game.do" method="post">
    [2.47]
    [2.106]
    <form id="leave-game" action="leave-game.do" method="post">
  • replacement in src/pages/slow_game.rs at line 153
    [3.517][3.517:578]()
    let join_data = if !has_itself && status.is_none() {
    [3.517]
    [3.578]
    let (join_data, leave_data) = if !has_itself && status.is_none() {
  • replacement in src/pages/slow_game.rs at line 161
    [3.869][2.430:471]()
    Some(JoinLeaveData { csrf })
    [3.869]
    [3.905]
    (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
    [3.922][3.922:939]()
    None
    [3.922]
    [3.939]
    (None, None)
  • replacement in src/pages/slow_game.rs at line 175
    [3.951][2.472:511]()
    (Some(users), join_data, None)
    [3.951]
    [3.1059]
    (Some(users), join_data, leave_data)
  • replacement in src/pages/slow_game.rs at line 280
    [2.905][2.905:942]()
    _data_rw: web::Data<DataBaseRw>,
    [2.905]
    [2.942]
    data_rw: web::Data<DataBaseRw>,
  • edit in src/pages/slow_game.rs at line 304
    [3.1240]
    [3.934]
    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());
    }