summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-12-18 13:18:50 -0500
committerKjetil Orbekk <kj@orbekk.com>2022-12-18 13:18:50 -0500
commit7a80df9cce73e0515cdb40410e21329fdc361ee6 (patch)
treed5a2d3aac7dd4768df92641540e900bae168c799 /server
parente7167b17d96cea1c31ca77e36cc0248c18b818c6 (diff)
Advance play until player turn for webapp
Diffstat (limited to 'server')
-rw-r--r--server/src/main.rs11
-rw-r--r--server/src/play.rs2
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(())
}