From b5940c3ae2b6e23a6373383d5d78958fb23cb611 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Sun, 18 Dec 2022 11:41:04 -0500 Subject: Add Table::bid() --- server/src/error.rs | 3 +++ server/src/play.rs | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/server/src/error.rs b/server/src/error.rs index 344624c..a636ceb 100644 --- a/server/src/error.rs +++ b/server/src/error.rs @@ -35,6 +35,9 @@ pub enum BridgeError { #[error("User is not logged in")] NotLoggedIn, + #[error("Anyhow error")] + AnyhowError(#[from]anyhow::Error), + #[error("Authentication error")] SigningFailed(#[from] openidconnect::SigningError), diff --git a/server/src/play.rs b/server/src/play.rs index 9ea2f42..17d5819 100644 --- a/server/src/play.rs +++ b/server/src/play.rs @@ -114,6 +114,13 @@ impl Table { Ok(game) } + async fn bid(&mut self, bid: Bid) -> Result<(), BridgeError> { + let game = self.game.clone().bid(bid)?; + self.journal.append(self.journal.next(), json!(game)).await?; + self.game = game; + Ok(()) + } + pub async fn replay(mut journal: J) -> Result { let games = journal.replay(0).await?; if games.is_empty() { -- cgit v1.2.3