From 01f1219f5542dcf64e691e902a213e4374945ba3 Mon Sep 17 00:00:00 2001 From: Tobias Maier Date: Tue, 26 Sep 2023 21:10:40 +0000 Subject: [PATCH] Now rading database from env var --- src/database.rs | 4 ++-- src/main.rs | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/database.rs b/src/database.rs index 0268c42..e8d0496 100644 --- a/src/database.rs +++ b/src/database.rs @@ -18,10 +18,10 @@ pub enum DatabaseError { } impl Database { - pub async fn init(host: &str, user: &str, pass: &str, db_name: &str) -> Database { + pub async fn init(database_url: &str) -> Database { match PgPoolOptions::new() .max_connections(10) - .connect(&format!("postgres://{user}:{pass}@{host}/{db_name}")) + .connect(database_url) .await { Ok(pool) => { diff --git a/src/main.rs b/src/main.rs index 75c7926..4fae69f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ +use std::{env, process}; + use crate::schemas::{TelemetryMessageFromDevice, ValueMessageFromDevice}; use actix_web::{get, http::StatusCode, post, web, App, HttpResponse, HttpServer, Responder}; use database::Database; @@ -102,8 +104,17 @@ async fn main() -> std::io::Result<()> { env_logger::init(); info!("Starting"); - info!("Connecting to Database"); - let db = Database::init("db", "dev", "dev", "iot").await; + + let db_url = match env::var("DATABASE_URL") { + Ok(url) => url, + Err(e) => { + error!("Failed reading DATABASE_URL"); + process::exit(1); + } + }; + info!("Connecting to Database {}", db_url); + + let db = Database::init(&db_url).await; db.init_db().await; HttpServer::new(move || {