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