summaryrefslogtreecommitdiff
path: root/server/src/main.rs
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-12-23 16:41:50 -0500
committerKjetil Orbekk <kj@orbekk.com>2022-12-23 16:41:50 -0500
commitb62be3482bc8a69d59744964ec4f6d3574d8b918 (patch)
treec8bc8d42cbfcbb5fe8f075ec99d48d8ffd4b5ce4 /server/src/main.rs
parent45ce66a29b3d1c49ef8e86b125701e89d58e8a4a (diff)
Add ability to request the next deal when results are displayed
Diffstat (limited to 'server/src/main.rs')
-rw-r--r--server/src/main.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/server/src/main.rs b/server/src/main.rs
index a9e8f69..c0ec4cb 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -117,6 +117,7 @@ async fn main() {
.route("/api/table/:id", get(get_table_view))
.route("/api/table/:id/bid", post(post_bid))
.route("/api/table/:id/play", post(post_play))
+ .route("/api/table/:id/admin/deal", post(table_new_deal))
.route("/api/login", get(login))
.route(auth::LOGIN_CALLBACK, get(login_callback))
.layer(CookieManagerLayer::new())
@@ -169,6 +170,18 @@ async fn get_table_view(
Ok(response)
}
+async fn table_new_deal(
+ _session: AuthenticatedSession,
+ State(state): ServerState,
+ Path(id): Path<Uuid>,
+) -> Result<Json<()>, BridgeError> {
+ info!("Getting table state for {id:}");
+ let jnl = DbJournal::new(state.db.clone(), id);
+ let mut table = play::Table::replay(jnl).await?;
+ table.new_deal().await?;
+ Ok(Json(()))
+}
+
async fn post_bid(
_session: AuthenticatedSession,
State(state): ServerState,