Email client, application startup logic and tests

This commit is contained in:
Alphonse Paix
2025-08-24 11:31:03 +02:00
parent 85ab04f254
commit 4389873bf4
14 changed files with 636 additions and 410 deletions

View File

@@ -1,19 +1,13 @@
use sqlx::postgres::PgPoolOptions;
use tokio::net::TcpListener;
use zero2prod::{configuration::get_configuration, startup::run, telemetry::init_subscriber};
use zero2prod::{
configuration::get_configuration, startup::Application, telemetry::init_subscriber,
};
#[tokio::main]
async fn main() {
async fn main() -> Result<(), std::io::Error> {
init_subscriber(std::io::stdout);
let configuration = get_configuration().expect("Failed to read configuration");
let listener = TcpListener::bind(format!(
"{}:{}",
configuration.application.host, configuration.application.port
))
.await
.unwrap();
tracing::debug!("listening on {}", listener.local_addr().unwrap());
let connection_pool = PgPoolOptions::new().connect_lazy_with(configuration.database.with_db());
run(listener, connection_pool).await
let configuration = get_configuration().expect("Failed to read configuration");
let application = Application::build(configuration).await?;
application.run_until_stopped().await?;
Ok(())
}