html terminal
Diffstat (limited to 'src/server.rs')
| -rw-r--r-- | src/server.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/server.rs b/src/server.rs index 218bf84..78e3b1c 100644 --- a/src/server.rs +++ b/src/server.rs @@ -63,6 +63,15 @@ async fn map_view( ) } +async fn map_file( + axum::extract::State(state): axum::extract::State<Arc<State>>, +) -> impl IntoResponse { + ( + AppendHeaders([(CONTENT_TYPE, "application/octet-stream")]), + crate::bot::maps::savefile(&state.stdin).await.unwrap(), + ) +} + pub struct Server; impl Server { pub async fn spawn(addr: SocketAddr) { @@ -73,6 +82,7 @@ impl Server { .route("/plaguess.png", png!(plaguess)) .route("/favicon.ico", png!(logo32)) .route("/view", get(map_view)) + .route("/savefile", get(map_file)) .with_state(state.clone()); tokio::spawn(async move { AxumServer::bind(&addr) |