(refactor) AppState to state mod

This commit is contained in:
Rorik Star Platinum 2025-11-05 00:47:34 +03:00
parent 8a03bdee96
commit 5b3c2d4ec7
6 changed files with 92 additions and 14 deletions

View file

@ -1,28 +1,24 @@
// src/main.rs
mod route; // Объявляем модуль route (это либо route.rs, либо route/mod.rs)
mod db; // Объявляем модуль для работы с БД
mod route;
mod db;
mod state;
mod api;
use std::net::SocketAddr;
use sqlx::PgPool;
use api::banking::BankingClients;
/// Общее состояние приложения, передаётся во все handlers
/// Это паттерн Axum: State<AppState> используется в extract'ах
#[derive(Clone)]
pub struct AppState {
pub db_pool: PgPool,
}
#[tokio::main]
async fn main() {
// 1. Загружаем переменные окружения из .env или secrets (через sops)
dotenvy::dotenv().ok();
// 2. Инициализируем базу данных
let db_pool = db::init_pool().await;
println!("✅ Database connection pool created successfully.");
// 3. Создаём общее состояние приложения
let app_state = AppState { db_pool };
let app_state = AppState::new().await;
// 4. Конфигурируем роуты (все роуты централизованы в route::router())
let app = route::router(app_state);