intent_engine/dashboard/
routes.rs

1use axum::{
2    routing::{get, post},
3    Router,
4};
5
6use super::handlers;
7use super::server::AppState;
8
9/// Create API router with all endpoints
10pub fn api_routes() -> Router<AppState> {
11    Router::new()
12        // Task management routes
13        .route("/tasks", get(handlers::list_tasks).post(handlers::create_task))
14        .route(
15            "/tasks/:id",
16            get(handlers::get_task)
17                .patch(handlers::update_task)
18                .delete(handlers::delete_task),
19        )
20        .route("/tasks/:id/start", post(handlers::start_task))
21        .route("/tasks/:id/spawn-subtask", post(handlers::spawn_subtask))
22        // Task done is a global operation
23        .route("/tasks/done", post(handlers::done_task))
24        // Event routes
25        .route(
26            "/tasks/:id/events",
27            get(handlers::list_events).post(handlers::create_event),
28        )
29        // Global routes
30        .route("/current-task", get(handlers::get_current_task))
31        .route("/pick-next", get(handlers::pick_next_task))
32        .route("/search", get(handlers::search))
33        .route("/projects", get(handlers::list_projects))
34        .route("/switch-project", post(handlers::switch_project))
35}
36
37#[cfg(test)]
38mod tests {
39    use super::*;
40
41    #[test]
42    fn test_api_routes_creation() {
43        // This just verifies the routes can be created without panic
44        let _router = api_routes();
45    }
46}