Implemented proxying of GSD requests

This commit is contained in:
Dennis Nemec
2025-09-30 21:55:53 +02:00
parent b95454458c
commit e8954ba5c1
14 changed files with 2589 additions and 2 deletions

54
src/main.rs Normal file
View File

@ -0,0 +1,54 @@
use crate::api::{handle_login, handle_post};
use crate::config::load_config;
use crate::middleware::AppState;
use crate::repository::RedisRepository;
use crate::util::initialize_logging;
use axum::routing::post;
use axum::{Extension, Router};
use log::info;
use std::sync::Arc;
mod api;
mod config;
mod middleware;
mod repository;
mod service_gsd;
mod util;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = load_config()?;
initialize_logging(&config);
info!("Logging initialized");
info!("Starting Holzleitner Delivery Backend");
let redis_url = config.redis_url.clone();
let host_url = config.get_host_url().clone();
let state = Arc::new(AppState {
config: config.clone(),
repository: RedisRepository::try_new(redis_url).await?,
gsd_service: (&config).into(),
});
let app = Router::new()
.route("/login", post(handle_login))
.route("/{*wildcard}", post(handle_post))
.layer(Extension(state.clone()))
.route_layer(axum::middleware::from_fn_with_state(
state.clone(),
middleware::gsd_add_header,
))
.route_layer(axum::middleware::from_fn_with_state(
state.clone(),
middleware::auth_middleware,
))
.with_state(state);
let listener = tokio::net::TcpListener::bind(host_url).await.unwrap();
axum::serve(listener, app).await.unwrap();
Ok(())
}