mod handlers; mod models; mod router; use axum::{Router, routing}; use dotenv::dotenv; use models::*; use router::create_router; use serde::{Deserialize, Serialize}; use sqlx::{PgPool, postgres::PgPoolOptions}; pub struct AppState { db: PgPool, } #[tokio::main] async fn main() { dotenv().ok(); let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL variable not set"); let pool = match PgPoolOptions::new().connect(&database_url).await { Ok(pool) => { println!("Database connection successful"); pool } Err(err) => { println!("Failed to connect to database: {:?}", err); std::process::exit(1); } }; let app = Router::new().route("/", routing::get(root_handler)); let listener = tokio::net::TcpListener::bind("0.0.0.0:8001").await.unwrap(); axum::serve(listener, app).await; } async fn root_handler() -> &'static str { "Hello, World" }