webdev_guide 0.6.0

Learn how to build a webservice in Rust!
use actix_web::Result;
use sqlx::PgPool;
use std::env;

use crate::dtypes::structs::ErrorMessage;

pub async fn connect() -> Result<PgPool, ErrorMessage> {
    if let Err(e) = dotenv::dotenv() {
        return Err(ErrorMessage::new(&format!(
            "Failed to read .env file: {}",
            e
        )));
    }

    let database_url =
        env::var("DATABASE_URL").map_err(|_| ErrorMessage::new("DATABASE_URL is not set"))?;

    let pool_result = PgPool::connect(&database_url)
        .await
        .map_err(|e| ErrorMessage::new(&format!("Database connection error: {}", e)))?;

    Ok(pool_result)
}