mod.rs
⎇
Raw
1use std::sync::Arc;
2
3use axum::routing::{delete, get, post, put};
4use axum::Router;
5
6use crate::error::AppState;
7
8mod admin;
9mod auth;
10mod common;
11mod files;
12mod shares;
13mod spa;
14
15pub fn router(state: Arc<AppState>) -> Router {
16 Router::new()
17 .route("/api/auth/login", post(auth::login))
18 .route("/api/auth/logout", post(auth::logout))
19 .route("/api/auth/me", get(auth::me))
20 .route("/api/auth/setup", post(auth::setup))
21 .route("/api/files/{root_id}", get(files::list_root))
22 .route("/api/files/{root_id}/{*path}", get(files::file_get))
23 .route("/api/files/{root_id}/{*path}", put(files::file_put))
24 .route("/api/files/{root_id}", post(files::dispatch_root))
25 .route("/api/files/{root_id}/{*path}", post(files::dispatch))
26 .route("/api/files/{root_id}/{*path}", delete(files::delete))
27 .route("/api/shares", get(shares::list))
28 .route("/api/shares", post(shares::create))
29 .route("/api/shares/{id}", delete(shares::delete))
30 .route("/api/share/{token}", get(shares::resolve))
31 .route("/api/admin/users", get(admin::list_users))
32 .route("/api/admin/users", post(admin::create_user))
33 .route("/api/admin/users/{id}", put(admin::update_user))
34 .route("/api/admin/users/{id}", delete(admin::delete_user))
35 .route("/api/admin/settings", get(admin::get_settings))
36 .route("/api/admin/settings", put(admin::update_settings))
37 .fallback(spa::fallback)
38 .with_state(state)
39}
40