Skip to main content

mini_apm/web/
mod.rs

1mod api_key;
2pub mod auth;
3mod auth_middleware;
4mod dashboard;
5mod deploys;
6mod errors;
7mod performance;
8pub mod project_context;
9mod projects;
10mod traces;
11
12use axum::{
13    Router, middleware,
14    routing::{get, post},
15};
16
17use crate::DbPool;
18
19pub fn routes(pool: DbPool) -> Router<DbPool> {
20    Router::new()
21        .route("/", get(dashboard::index))
22        .route("/errors", get(errors::index))
23        .route("/errors/:id", get(errors::show))
24        .route("/errors/:id/status", post(errors::update_status))
25        .route("/traces", get(traces::index))
26        .route("/traces/:trace_id", get(traces::show))
27        .route("/performance", get(performance::index))
28        .route("/deploys", get(deploys::index))
29        .route("/projects/switch", post(projects::switch_project))
30        .route("/projects", get(projects::index))
31        .route("/projects/create", post(projects::create))
32        .route("/projects/delete", post(projects::delete))
33        .route("/projects/regenerate-key", post(projects::regenerate_key))
34        .route("/api-key", get(api_key::index))
35        .route("/api-key/regenerate", post(api_key::regenerate))
36        .layer(middleware::from_fn_with_state(
37            pool,
38            auth_middleware::web_auth_middleware,
39        ))
40}
41
42pub fn auth_routes() -> Router<DbPool> {
43    Router::new()
44        .route(
45            "/auth/login",
46            get(auth::login_page).post(auth::login_submit),
47        )
48        .route("/auth/logout", post(auth::logout))
49        .route(
50            "/auth/change-password",
51            get(auth::change_password_page).post(auth::change_password_submit),
52        )
53        .route("/auth/users", get(auth::users_page))
54        .route("/auth/users/create", post(auth::create_user))
55        .route("/auth/users/delete", post(auth::delete_user))
56        .route(
57            "/auth/invite/{token}",
58            get(auth::invite_page).post(auth::invite_submit),
59        )
60}