use axum::{middleware, routing::get, Router}; use crate::{app::App, ui::middleware::setup_required}; mod ch; mod get; mod invite; mod login; mod path; mod setup; pub fn router(app: &App) -> Router { [ Router::new() .route("/*path", get(path::get::handler)) .route("/setup", get(setup::get::handler)), Router::new() .route("/", get(get::handler)) .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)), ] .into_iter() .fold(Router::default(), Router::merge) }