From 7a80df9cce73e0515cdb40410e21329fdc361ee6 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Sun, 18 Dec 2022 13:18:50 -0500 Subject: Advance play until player turn for webapp --- server/src/main.rs | 11 ++++++++--- server/src/play.rs | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'server/src') diff --git a/server/src/main.rs b/server/src/main.rs index 95e23e6..68baab7 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -24,7 +24,7 @@ mod server; mod fake_auth; use crate::{ auth::{OauthAuthenticator, SessionId}, - server::ServerContext, + server::ServerContext, play::advance_play, }; use crate::{ error::BridgeError, @@ -138,10 +138,15 @@ async fn get_table_view( Path(id): Path, ) -> Result, BridgeError> { info!("Getting table state for {id:}"); + let player_position = Player::South; let jnl = DbJournal::new(extension.db.clone(), id); - let table = play::Table::new_or_replay(jnl).await?; + let mut table = play::Table::new_or_replay(jnl).await?; + info!("Advancing play"); + while table.game().current_player() != Some(player_position) { + advance_play(&mut table).await?; + } let response = - Json(GameStatePlayerView::from_game_state(table.game(), Player::South)); + Json(GameStatePlayerView::from_game_state(table.game(), player_position)); info!("Response: {response:#?}"); Ok(response) } diff --git a/server/src/play.rs b/server/src/play.rs index c4dc5c7..a6e78f2 100644 --- a/server/src/play.rs +++ b/server/src/play.rs @@ -4,7 +4,6 @@ use rand::random; use serde::{Deserialize, Serialize}; use serde_json::json; use sqlx::{query, PgPool}; -use tracing::error; use uuid::Uuid; use crate::error::BridgeError; @@ -52,6 +51,7 @@ impl Journal for DbJournal { return Err(BridgeError::JournalConflict(format!("{}", self.id), seq)); } } + self.seq += 1; Ok(()) } -- cgit v1.2.3