mirror of
https://github.com/perstarkse/minne.git
synced 2026-03-21 00:49:54 +01:00
state instead of extensions
This commit is contained in:
@@ -1,20 +1,23 @@
|
||||
use axum::{
|
||||
extract::DefaultBodyLimit,
|
||||
routing::{delete, get, post, put},
|
||||
Extension, Router,
|
||||
Router,
|
||||
};
|
||||
use std::sync::Arc;
|
||||
use tera::Tera;
|
||||
use tower_http::services::ServeDir;
|
||||
use tracing_subscriber::{fmt, prelude::*, EnvFilter};
|
||||
use zettle_db::{
|
||||
rabbitmq::{publisher::RabbitMQProducer, RabbitMQConfig},
|
||||
server::routes::{
|
||||
file::{delete_file_handler, get_file_handler, update_file_handler, upload_handler},
|
||||
index::index_handler,
|
||||
ingress::ingress_handler,
|
||||
query::query_handler,
|
||||
queue_length::queue_length_handler,
|
||||
rabbitmq::{consumer::RabbitMQConsumer, publisher::RabbitMQProducer, RabbitMQConfig},
|
||||
server::{
|
||||
routes::{
|
||||
file::{delete_file_handler, get_file_handler, update_file_handler, upload_handler},
|
||||
index::index_handler,
|
||||
ingress::ingress_handler,
|
||||
query::query_handler,
|
||||
queue_length::queue_length_handler,
|
||||
},
|
||||
AppState,
|
||||
},
|
||||
storage::db::SurrealDbClient,
|
||||
};
|
||||
@@ -28,8 +31,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.try_init()
|
||||
.ok();
|
||||
|
||||
let tera = Tera::new("src/server/templates/**/*.html").unwrap();
|
||||
|
||||
// Set up RabbitMQ
|
||||
let config = RabbitMQConfig {
|
||||
amqp_addr: "amqp://localhost".to_string(),
|
||||
@@ -38,18 +39,18 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
routing_key: "my_key".to_string(),
|
||||
};
|
||||
|
||||
// Set up producer
|
||||
let producer = Arc::new(RabbitMQProducer::new(&config).await?);
|
||||
|
||||
// Set up database client
|
||||
let db_client = Arc::new(SurrealDbClient::new().await?);
|
||||
let app_state = AppState {
|
||||
rabbitmq_producer: Arc::new(RabbitMQProducer::new(&config).await?),
|
||||
rabbitmq_consumer: Arc::new(RabbitMQConsumer::new(&config).await?),
|
||||
surreal_db_client: Arc::new(SurrealDbClient::new().await?),
|
||||
tera: Arc::new(Tera::new("src/server/templates/**/*.html").unwrap()),
|
||||
};
|
||||
|
||||
// Create Axum router
|
||||
let app = Router::new()
|
||||
// Ingress routes
|
||||
.route("/ingress", post(ingress_handler))
|
||||
.route("/message_count", get(queue_length_handler))
|
||||
.layer(Extension(producer))
|
||||
// File routes
|
||||
.route("/file", post(upload_handler))
|
||||
.layer(DefaultBodyLimit::max(1024 * 1024 * 1024))
|
||||
@@ -58,10 +59,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.route("/file/:uuid", delete(delete_file_handler))
|
||||
// Query routes
|
||||
.route("/query", post(query_handler))
|
||||
.layer(Extension(db_client))
|
||||
// Html routes
|
||||
.route("/", get(index_handler))
|
||||
.layer(Extension(tera))
|
||||
.with_state(app_state)
|
||||
.nest_service("/assets", ServeDir::new("src/server/assets"));
|
||||
|
||||
tracing::info!("Listening on 0.0.0.0:3000");
|
||||
|
||||
Reference in New Issue
Block a user