1mod error;
2mod filters;
3mod handlers;
4mod templates;
5
6use axum::{
7 Router,
8 extract::Extension,
9 routing::{get, post},
10};
11
12const JOBS_PER_PAGE: usize = 50;
13
14#[derive(Clone)]
15pub struct OxanusWebState {
16 pub storage: oxanus::Storage,
17 pub catalog: oxanus::Catalog,
18 pub base_path: String,
19}
20
21pub fn router(state: OxanusWebState) -> Router {
22 Router::new()
23 .route("/", get(handlers::dashboard))
24 .route("/busy", get(handlers::busy))
25 .route("/queues", get(handlers::queues_list))
26 .route("/cron", get(handlers::cron_jobs))
27 .route("/scheduled", get(handlers::scheduled_jobs))
28 .route("/dead", get(handlers::dead_jobs))
29 .route("/retries", get(handlers::retry_jobs))
30 .route("/queues/{queue_key}", get(handlers::queue_detail))
31 .route("/queues/{queue_key}/wipe", post(handlers::wipe_queue))
32 .route(
33 "/queues/{queue_key}/jobs/{job_id}/delete",
34 post(handlers::delete_job),
35 )
36 .layer(Extension(state))
37}