mod admin;
#[cfg(feature = "auth")]
mod auth;
mod extensions;
mod graphql;
mod middleware;
#[cfg(test)]
mod mount_authz_tests;
#[cfg(feature = "observers")]
pub(in crate::server) mod observers;
mod state;
use std::sync::Arc;
use axum::Router;
use fraiseql_core::{db::traits::DatabaseAdapter, security::OidcValidator};
use super::{OidcAuthState, Server};
use crate::routes::graphql::AppState;
impl<A: DatabaseAdapter + Clone + Send + Sync + 'static> Server<A> {
pub(super) fn oidc_auth_state(&self, validator: Arc<OidcValidator>) -> OidcAuthState {
OidcAuthState::new(validator).with_revocation(self.revocation_manager.clone())
}
pub(super) fn build_router(&self) -> (Router, AppState<A>) {
let state = self.build_app_state();
let graphql_router = self.build_graphql_router(&state);
let mut app = Router::new();
app = self.mount_base_and_admin_routes(app.merge(graphql_router), &state);
#[cfg(feature = "auth")]
{
app = self.mount_auth_routes(app);
}
app = self.mount_extensions(app, &state);
app = self.apply_middleware(app, &state);
(app, state)
}
}