diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-12-18 13:18:50 -0500 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-12-18 13:18:50 -0500 |
commit | 7a80df9cce73e0515cdb40410e21329fdc361ee6 (patch) | |
tree | d5a2d3aac7dd4768df92641540e900bae168c799 /server | |
parent | e7167b17d96cea1c31ca77e36cc0248c18b818c6 (diff) |
Advance play until player turn for webapp
Diffstat (limited to 'server')
-rw-r--r-- | server/src/main.rs | 11 | ||||
-rw-r--r-- | server/src/play.rs | 2 |
2 files changed, 9 insertions, 4 deletions
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<Uuid>, ) -> Result<Json<protocol::bridge_engine::GameStatePlayerView>, 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(()) } |