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/src/main.rs | |
parent | e7167b17d96cea1c31ca77e36cc0248c18b818c6 (diff) |
Advance play until player turn for webapp
Diffstat (limited to 'server/src/main.rs')
-rw-r--r-- | server/src/main.rs | 11 |
1 files changed, 8 insertions, 3 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) } |