diff options
author | Tyler Murphy <tylerm@tylerm.dev> | 2023-06-16 20:38:55 -0400 |
---|---|---|
committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-06-16 20:38:55 -0400 |
commit | 44334fc3852eb832280a335f72e6416c93a9f19f (patch) | |
tree | 4a97b6064a97c4ad58c07d89050ad8a11e7a4f70 /src/routes.rs | |
parent | better map bg renderer (diff) | |
download | tuxman-44334fc3852eb832280a335f72e6416c93a9f19f.tar.gz tuxman-44334fc3852eb832280a335f72e6416c93a9f19f.tar.bz2 tuxman-44334fc3852eb832280a335f72e6416c93a9f19f.zip |
ts
Diffstat (limited to 'src/routes.rs')
-rw-r--r-- | src/routes.rs | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/src/routes.rs b/src/routes.rs deleted file mode 100644 index 1fa16c7..0000000 --- a/src/routes.rs +++ /dev/null @@ -1,51 +0,0 @@ -use axum::{ - extract::{ws::WebSocketUpgrade, Path}, - routing::get, - response::Response, - Router, Extension, -}; -use tokio::sync::oneshot; -use tower_http::services::ServeDir; - -use super::rooms; - -pub fn routes() -> Router { - let room_server: rooms::RoomService = rooms::start_room_server(); - - Router::new() - .route("/api/check", get(|| async {"ok"})) - .route("/api/exists/:code", get(game_exists)) - .route("/api/join/:code", get(game_join)) - .nest_service("/", ServeDir::new("client")) - .layer(Extension(room_server)) -} - -// check if a given room code exists already -async fn game_exists( - Path(code): Path<String>, - Extension(room_server): Extension<rooms::RoomService> -) -> &'static str { - let (tx, rx) = oneshot::channel(); - room_server.send(rooms::RoomServiceRequest::Exists(code, tx)).await.ok(); - - if let Ok(res) = rx.await { - if res { - "true" - } else { - "false" - } - } else { - return "error"; - } -} - -// start a websocket connection and join it to the room -async fn game_join( - Path(code): Path<String>, - ws: WebSocketUpgrade, - Extension(room_server): Extension<rooms::RoomService> -) -> Response { - ws.on_upgrade(|s| async move { - room_server.send(rooms::RoomServiceRequest::Join(code, s)).await.ok(); - }) -} |