pub mod error;
pub mod flight;
pub mod grpc;
pub mod grpc_web_trailers;
pub mod metrics_layer;
pub mod routes;
pub mod runtime;
pub mod telemetry;
pub mod tenant_resolver_layer;
pub mod tiers;
use std::sync::Arc;
use axum::routing::get;
use axum::Router;
use jammi_db::catalog::topic_repo::TopicRepo;
use jammi_db::trigger::{Publisher, Subscriber};
use crate::error::fallback_handler;
use crate::routes::health::{self, MetricsRegistry};
use crate::runtime::ReadinessProbe;
pub struct TriggerHandles {
pub topic_repo: Arc<TopicRepo>,
pub publisher: Arc<Publisher>,
pub subscriber: Arc<Subscriber>,
}
pub fn build_router() -> Router {
Router::new()
.route("/healthz", get(health::healthz))
.fallback(fallback_handler)
}
pub fn build_health_router(
readiness: Arc<ReadinessProbe>,
metrics: Arc<MetricsRegistry>,
) -> Router {
let readyz = Router::new()
.route("/readyz", get(health::readyz))
.with_state(readiness);
let metrics = Router::new()
.route("/metrics", get(health::metrics))
.with_state(metrics);
Router::new()
.route("/healthz", get(health::healthz))
.merge(readyz)
.merge(metrics)
.fallback(fallback_handler)
}