summaryrefslogtreecommitdiff
path: root/src/ui/routes/mod.rs
blob: 328eb737fc394ddc9ad5f62a6ac858b0235a4a68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use axum::{Router, response::Redirect, routing::get};

use crate::app::App;

mod ch;
mod get;
mod invite;
mod login;
mod me;
mod path;
mod setup;

pub fn router(app: &App) -> Router<App> {
    [
        Router::new()
            .route("/{*path}", get(path::get::handler))
            .route("/setup", get(setup::get::handler)),
        Router::new()
            .route("/", get(get::handler))
            .route("/me", get(me::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(crate::setup::Required::with_fallback(
                app.clone(),
                Redirect::to("/setup"),
            )),
    ]
    .into_iter()
    .fold(Router::default(), Router::merge)
}