pub mod dto;
pub mod error;
pub mod handlers;
pub mod state;
pub mod websocket;
use axum::{
routing::{get, post},
Router,
};
pub use dto::*;
pub use error::ApiError;
pub use state::AppState;
pub fn create_router(state: AppState) -> Router {
Router::new()
.route(
"/api/v1/mat/events",
get(handlers::list_events).post(handlers::create_event),
)
.route("/api/v1/mat/events/:event_id", get(handlers::get_event))
.route(
"/api/v1/mat/events/:event_id/zones",
get(handlers::list_zones).post(handlers::add_zone),
)
.route(
"/api/v1/mat/events/:event_id/survivors",
get(handlers::list_survivors),
)
.route(
"/api/v1/mat/events/:event_id/alerts",
get(handlers::list_alerts),
)
.route(
"/api/v1/mat/alerts/:alert_id/acknowledge",
post(handlers::acknowledge_alert),
)
.route("/api/v1/mat/scan/csi", post(handlers::push_csi_data))
.route("/api/v1/mat/scan/control", post(handlers::scan_control))
.route("/api/v1/mat/scan/status", get(handlers::pipeline_status))
.route(
"/api/v1/mat/events/domain",
get(handlers::list_domain_events),
)
.route("/ws/mat/stream", get(websocket::ws_handler))
.with_state(state)
}