summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/middleware.rs15
-rw-r--r--src/ui/mod.rs1
-rw-r--r--src/ui/routes/mod.rs6
3 files changed, 3 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..dc94773 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,7 @@ 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(app.clone()).with_fallback(Redirect::to("/setup"))),
]
.into_iter()
.fold(Router::default(), Router::merge)