From 9011f223c73cb22ab49ba52081fd26d6c1f1858e Mon Sep 17 00:00:00 2001 From: Simon Goller Date: Wed, 26 Jun 2024 13:04:35 +0200 Subject: [PATCH] Add REST service which provides the version --- app/src/main.rs | 4 ++++ rest/src/lib.rs | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/app/src/main.rs b/app/src/main.rs index 4891ee2..941d3dd 100644 --- a/app/src/main.rs +++ b/app/src/main.rs @@ -77,6 +77,10 @@ impl rest::RestStateDef for RestStateImpl { type WorkingHoursService = WorkingHoursService; type ExtraHoursService = ExtraHoursService; + fn backend_version(&self) -> Arc { + Arc::from(env!("CARGO_PKG_VERSION")) + } + fn user_service(&self) -> Arc { self.user_service.clone() } diff --git a/rest/src/lib.rs b/rest/src/lib.rs index c9d6628..b9aa818 100644 --- a/rest/src/lib.rs +++ b/rest/src/lib.rs @@ -237,6 +237,8 @@ pub trait RestStateDef: Clone + Send + Sync + 'static { + Sync + 'static; + fn backend_version(&self) -> Arc; + fn user_service(&self) -> Arc; fn permission_service(&self) -> Arc; fn slot_service(&self) -> Arc; @@ -276,6 +278,13 @@ pub async fn login() -> Redirect { Redirect::to("/") } +pub async fn get_version(rest_state: State) -> Response { + Response::builder() + .status(200) + .body(Body::new(rest_state.backend_version().to_string())) + .unwrap() +} + #[cfg(feature = "oidc")] use axum_oidc::OidcRpInitiatedLogout; #[cfg(feature = "oidc")] @@ -344,6 +353,7 @@ pub async fn start_server(rest_state: RestState) { let app = app .route("/auth-info", get(auth_info::)) + .route("/version", get(get_version::)) .nest("/permission", permission::generate_route()) .nest("/slot", slot::generate_route()) .nest("/sales-person", sales_person::generate_route())