//! API route handlers for the backend server. //! //! This module contains all the HTTP endpoint handlers organized by functionality: //! - Health checks //! - Application metadata use poem_openapi::Tags; mod health; mod meta; use crate::settings::Settings; #[derive(Tags)] enum ApiCategory { Health, Meta, } pub(crate) struct Api { health: health::HealthApi, meta: meta::MetaApi, } impl From<&Settings> for Api { fn from(value: &Settings) -> Self { let health = health::HealthApi; let meta = meta::MetaApi::from(&value.application); Self { health, meta } } } impl Api { pub fn apis(self) -> (health::HealthApi, meta::MetaApi) { (self.health, self.meta) } }