use crate::routes::{health_check, subscribe}; use actix_web::dev::Server; use actix_web::web::Data; use actix_web::{web, App, HttpServer}; use sqlx::PgPool; use std::net::TcpListener; use tracing_actix_web::TracingLogger; pub fn run(listener: TcpListener, db_pool: PgPool) -> Result { let db_pool = Data::new(db_pool); let server = HttpServer::new(move || { App::new() .wrap(TracingLogger) .route("/health_check", web::get().to(health_check)) .route("/subscriptions", web::post().to(subscribe)) .app_data(db_pool.clone()) }) .listen(listener)? .run(); Ok(server) }