use axum::{ extract::{Json, State}, routing::get, Router, }; use super::Snapshot; use crate::{app::App, error::Internal, login::Login}; #[cfg(test)] mod test; pub fn router() -> Router { Router::new().route("/api/boot", get(boot)) } async fn boot(State(app): State, login: Login) -> Result, Internal> { let snapshot = app.boot().snapshot().await?; Ok(Boot { login, snapshot }.into()) } #[derive(serde::Serialize)] struct Boot { login: Login, #[serde(flatten)] snapshot: Snapshot, }