pub mod handlers;
pub mod ipc;
pub mod openapi;
use axum::Router;
use axum::routing::{get, post};
use crate::QuerySession;
use crate::state::QueryState;
pub fn router<S, Session>(state: S) -> Router<S>
where
S: Send + Sync + Clone + 'static,
QueryState<Session>: axum::extract::FromRef<S>,
Session: QuerySession + 'static,
{
Router::new()
.route(
"/connectors",
get(handlers::list_connectors::<Session>)
.post(handlers::connector_list_many::<Session>),
)
.route("/connectors/{connector_id}", get(handlers::connector_list::<Session>))
.route("/register", get(handlers::list_registered::<Session>))
.route("/register/{connector_id}", get(handlers::register::<Session>))
.route("/catalogs", get(handlers::list_catalogs::<Session>))
.route("/query", post(handlers::execute_query::<Session>))
.with_state(state)
}