diff options
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/middleware.rs | 15 | ||||
| -rw-r--r-- | src/ui/mod.rs | 1 | ||||
| -rw-r--r-- | src/ui/routes/mod.rs | 9 |
3 files changed, 6 insertions, 19 deletions
diff --git a/src/ui/middleware.rs b/src/ui/middleware.rs deleted file mode 100644 index f60ee1c..0000000 --- a/src/ui/middleware.rs +++ /dev/null @@ -1,15 +0,0 @@ -use axum::{ - extract::{Request, State}, - middleware::Next, - response::{IntoResponse, Redirect, Response}, -}; - -use crate::{app::App, error::Internal}; - -pub async fn setup_required(State(app): State<App>, request: Request, next: Next) -> Response { - match app.setup().completed().await { - Ok(true) => next.run(request).await, - Ok(false) => Redirect::to("/setup").into_response(), - Err(error) => Internal::from(error).into_response(), - } -} diff --git a/src/ui/mod.rs b/src/ui/mod.rs index f8caa48..e834bba 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -1,6 +1,5 @@ mod assets; mod error; -mod middleware; mod mime; mod routes; diff --git a/src/ui/routes/mod.rs b/src/ui/routes/mod.rs index 80dc1e5..328eb73 100644 --- a/src/ui/routes/mod.rs +++ b/src/ui/routes/mod.rs @@ -1,6 +1,6 @@ -use axum::{Router, middleware, routing::get}; +use axum::{Router, response::Redirect, routing::get}; -use crate::{app::App, ui::middleware::setup_required}; +use crate::app::App; mod ch; mod get; @@ -21,7 +21,10 @@ pub fn router(app: &App) -> Router<App> { .route("/login", get(login::get::handler)) .route("/ch/{channel}", get(ch::channel::get::handler)) .route("/invite/{invite}", get(invite::invite::get::handler)) - .route_layer(middleware::from_fn_with_state(app.clone(), setup_required)), + .route_layer(crate::setup::Required::with_fallback( + app.clone(), + Redirect::to("/setup"), + )), ] .into_iter() .fold(Router::default(), Router::merge) |
