2024-05-11 22:30:21 -04:00

35 lines
1.0 KiB
Rust

use std::net::TcpListener;
use email_newsletter_api::telemetry::{get_subscriber, init_subscriber};
use email_newsletter_api::{configuration::get_configuration, startup};
use sqlx::postgres::PgPoolOptions;
#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
let configuration = get_configuration().expect("Failed to read configuration");
let subscriber = get_subscriber(
"email_newsletter_api".into(),
"info".into(),
std::io::stdout,
);
init_subscriber(subscriber);
let db_conn = PgPoolOptions::new().connect_lazy_with(configuration.database.with_db());
let listener = TcpListener::bind(format!(
"{}:{}",
configuration.application.host, configuration.application.port
))
.unwrap_or_else(|_| {
panic!(
"Can't bind to port {} at localhost",
configuration.application.port
)
});
// Move the error up the call stack
// otherwise await for the HttpServer
startup::run(listener, db_conn)?.await
}