From d5071ab768a4cc804c3197463cde3c23f1e604ad Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 1 Apr 2025 20:32:43 -0400 Subject: [PATCH] Database connectivity works --- src/callers/mod.rs | 2 +- src/lib.rs | 16 ++++++++++++++++ src/main.rs | 6 ++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/callers/mod.rs b/src/callers/mod.rs index 79b9089..ada84ab 100644 --- a/src/callers/mod.rs +++ b/src/callers/mod.rs @@ -3,5 +3,5 @@ pub mod register; pub mod endpoints { pub const ROOT: &str = "/"; - pub const REGISTER: &str = "api/v2/register"; + pub const REGISTER: &str = "/api/v2/register"; } diff --git a/src/lib.rs b/src/lib.rs index 231cc1e..0a095cc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,19 @@ pub mod callers; pub mod config; pub mod models; + +pub mod db_pool { + + use sqlx::postgres::PgPoolOptions; + use std::env; + + pub async fn create_pool() -> Result { + dotenv::dotenv().ok(); + let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set in .env"); + + PgPoolOptions::new() + .max_connections(10) + .connect(&database_url) + .await + } +} diff --git a/src/main.rs b/src/main.rs index 036d622..4560611 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ use axum::{ Router, routing::{get, post}, }; +// use std::net::SocketAddr; use icarus_auth::callers; use icarus_auth::config; @@ -11,8 +12,13 @@ async fn main() { // initialize tracing tracing_subscriber::fmt::init(); + let pool = icarus_auth::db_pool::create_pool() + .await + .expect("Failed to create pool"); + // build our application with a route let app = Router::new() + .layer(axum::Extension(pool)) .route(callers::endpoints::ROOT, get(callers::common::root)) .route( callers::endpoints::REGISTER,