style: apply rustfmt to backend codebase
- Apply rustfmt to all Rust source files in backend/ - Fix trailing whitespace inconsistencies - Standardize formatting across handlers, models, and services - Improve code readability with consistent formatting These changes are purely stylistic and do not affect functionality. All CI checks now pass with proper formatting.
This commit is contained in:
parent
6b7e4d4016
commit
ee0feb77ef
41 changed files with 1266 additions and 819 deletions
|
|
@ -1,49 +1,49 @@
|
|||
mod auth;
|
||||
mod config;
|
||||
mod db;
|
||||
mod models;
|
||||
mod auth;
|
||||
mod handlers;
|
||||
mod middleware;
|
||||
mod models;
|
||||
mod security;
|
||||
mod services;
|
||||
|
||||
use axum::{
|
||||
routing::{get, post, put, delete},
|
||||
routing::{delete, get, post, put},
|
||||
Router,
|
||||
};
|
||||
use tower::ServiceBuilder;
|
||||
use tower_http::{
|
||||
cors::CorsLayer,
|
||||
trace::TraceLayer,
|
||||
};
|
||||
use config::Config;
|
||||
use std::sync::Arc;
|
||||
use tower::ServiceBuilder;
|
||||
use tower_http::{cors::CorsLayer, trace::TraceLayer};
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
eprintln!("NORMOGEN BACKEND STARTING...");
|
||||
eprintln!("Loading environment variables...");
|
||||
|
||||
|
||||
match dotenv::dotenv() {
|
||||
Ok(path) => eprintln!("Loaded .env from: {:?}", path),
|
||||
Err(e) => eprintln!("No .env file found (this is OK in Docker): {}", e),
|
||||
}
|
||||
|
||||
|
||||
eprintln!("Initializing logging...");
|
||||
tracing_subscriber::fmt::init();
|
||||
|
||||
tracing::info!("Starting Normogen backend server");
|
||||
|
||||
|
||||
// Load configuration
|
||||
let config = Config::from_env()?;
|
||||
eprintln!("Configuration loaded successfully");
|
||||
|
||||
|
||||
// Connect to MongoDB
|
||||
tracing::info!("Connecting to MongoDB at {}", config.database.uri);
|
||||
eprintln!("Connecting to MongoDB...");
|
||||
let db = match db::MongoDb::new(&config.database.uri, &config.database.database).await {
|
||||
Ok(db) => {
|
||||
tracing::info!("Connected to MongoDB database: {}", config.database.database);
|
||||
tracing::info!(
|
||||
"Connected to MongoDB database: {}",
|
||||
config.database.database
|
||||
);
|
||||
eprintln!("MongoDB connection successful");
|
||||
db
|
||||
}
|
||||
|
|
@ -52,7 +52,7 @@ async fn main() -> anyhow::Result<()> {
|
|||
return Err(e);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
match db.health_check().await {
|
||||
Ok(_) => {
|
||||
tracing::info!("MongoDB health check: OK");
|
||||
|
|
@ -73,13 +73,13 @@ async fn main() -> anyhow::Result<()> {
|
|||
// Initialize security services (Phase 2.6)
|
||||
let audit_logger = security::AuditLogger::new(&database);
|
||||
let session_manager = security::SessionManager::new(&database);
|
||||
|
||||
|
||||
// Create account lockout service with reasonable defaults
|
||||
let user_collection = database.collection("users");
|
||||
let account_lockout = security::AccountLockout::new(
|
||||
user_collection,
|
||||
5, // max_attempts
|
||||
15, // base_duration_minutes
|
||||
5, // max_attempts
|
||||
15, // base_duration_minutes
|
||||
1440, // max_duration_minutes (24 hours)
|
||||
);
|
||||
|
||||
|
|
@ -102,17 +102,23 @@ async fn main() -> anyhow::Result<()> {
|
|||
mongo_client: None,
|
||||
interaction_service: Some(interaction_service),
|
||||
};
|
||||
|
||||
|
||||
eprintln!("Building router with security middleware...");
|
||||
|
||||
|
||||
// Build public routes (no auth required)
|
||||
let public_routes = Router::new()
|
||||
.route("/health", get(handlers::health_check).head(handlers::health_check))
|
||||
.route(
|
||||
"/health",
|
||||
get(handlers::health_check).head(handlers::health_check),
|
||||
)
|
||||
.route("/ready", get(handlers::ready_check))
|
||||
.route("/api/auth/register", post(handlers::register))
|
||||
.route("/api/auth/login", post(handlers::login))
|
||||
.route("/api/auth/recover-password", post(handlers::recover_password));
|
||||
|
||||
.route(
|
||||
"/api/auth/recover-password",
|
||||
post(handlers::recover_password),
|
||||
);
|
||||
|
||||
// Build protected routes (auth required)
|
||||
let protected_routes = Router::new()
|
||||
// User profile management
|
||||
|
|
@ -163,7 +169,7 @@ async fn main() -> anyhow::Result<()> {
|
|||
state.clone(),
|
||||
middleware::jwt_auth_middleware
|
||||
));
|
||||
|
||||
|
||||
let app = public_routes
|
||||
.merge(protected_routes)
|
||||
.with_state(state)
|
||||
|
|
@ -186,8 +192,8 @@ async fn main() -> anyhow::Result<()> {
|
|||
let listener = tokio::net::TcpListener::bind(&addr).await?;
|
||||
eprintln!("Server listening on {}", &addr);
|
||||
tracing::info!("Server listening on {}", &addr);
|
||||
|
||||
|
||||
axum::serve(listener, app).await?;
|
||||
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue