diff --git a/src/main.rs b/src/main.rs index e54be3c..289aaeb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,14 +1,16 @@ use axum::{ Extension, + Json, Router, http::{ - Method, + Method, StatusCode, header::{self, CONTENT_TYPE}, }, - // middleware, + routing::get, // middleware, }; use axum::{body::Body, extract::Request, middleware::Next, response::Response}; use clap::Parser; +use serde_json::json; use std::{net::SocketAddr, path::PathBuf, sync::Arc, time::Duration}; use tower_governor::{GovernorLayer, governor::GovernorConfigBuilder}; use tower_http::{ @@ -69,7 +71,7 @@ async fn main() -> anyhow::Result<()> { .allow_headers([header::AUTHORIZATION, header::CONTENT_TYPE]); let governor_conf = GovernorConfigBuilder::default() - .burst_size(15) + .burst_size(20) .per_millisecond(250) .finish() .unwrap(); @@ -95,6 +97,7 @@ async fn main() -> anyhow::Result<()> { }); let mut app = Router::new() + .route("/version", get(get_version)) .merge(routes::users::routes()) .merge(routes::rooms::routes()) .merge(routes::messages::routes()) @@ -164,3 +167,9 @@ async fn _log_json_body(req: Request, next: Next) -> Response { next.run(req).await } + +// Public route to get current version +async fn get_version() -> Result, (StatusCode, String)> { + const VERSION: &str = env!("CARGO_PKG_VERSION"); + Ok(Json(json!({ "version": VERSION }))) +}