mod.rs
| 1 | use std::sync::Arc; |
| 2 | |
| 3 | use axum::routing::{delete, get, post, put}; |
| 4 | use axum::Router; |
| 5 | |
| 6 | use crate::error::AppState; |
| 7 | |
| 8 | mod admin; |
| 9 | mod auth; |
| 10 | mod common; |
| 11 | mod files; |
| 12 | mod shares; |
| 13 | mod spa; |
| 14 | |
| 15 | pub 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 |