diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs index e6c746c..b7306ea 100644 --- a/src/main.rs +++ b/src/main.rs | |||
@@ -7,6 +7,7 @@ use sqlx::postgres::PgPoolOptions; | |||
7 | use time::util::local_offset; | 7 | use time::util::local_offset; |
8 | use tracing::{debug, info, level_filters::LevelFilter}; | 8 | use tracing::{debug, info, level_filters::LevelFilter}; |
9 | use tracing_subscriber::{EnvFilter, fmt::{self, time::LocalTime}, prelude::*}; | 9 | use tracing_subscriber::{EnvFilter, fmt::{self, time::LocalTime}, prelude::*}; |
10 | use crate::config::SETTINGS; | ||
10 | use crate::routes::device::{get_device, post_device, put_device}; | 11 | use crate::routes::device::{get_device, post_device, put_device}; |
11 | use crate::routes::start::start; | 12 | use crate::routes::start::start; |
12 | 13 | ||
@@ -37,13 +38,12 @@ async fn main() { | |||
37 | 38 | ||
38 | let version = env!("CARGO_PKG_VERSION"); | 39 | let version = env!("CARGO_PKG_VERSION"); |
39 | 40 | ||
40 | info!("starting webol v{}", version); | 41 | info!("start webol v{}", version); |
41 | 42 | ||
42 | let db = init_db_pool().await; | 43 | let db = init_db_pool().await; |
43 | 44 | ||
44 | let shared_state = Arc::new(AppState { db }); | 45 | let shared_state = Arc::new(AppState { db }); |
45 | 46 | ||
46 | // build our application with a single route | ||
47 | let app = Router::new() | 47 | let app = Router::new() |
48 | .route("/start", post(start)) | 48 | .route("/start", post(start)) |
49 | .route("/device", get(get_device)) | 49 | .route("/device", get(get_device)) |
@@ -51,8 +51,9 @@ async fn main() { | |||
51 | .route("/device", post(post_device)) | 51 | .route("/device", post(post_device)) |
52 | .with_state(shared_state); | 52 | .with_state(shared_state); |
53 | 53 | ||
54 | // TODO: Add to config | 54 | let addr = SETTINGS.get_string("serveraddr").unwrap_or("0.0.0.0:7229".to_string()); |
55 | axum::Server::bind(&"0.0.0.0:3000".parse().unwrap()) | 55 | info!("start server on {}", addr); |
56 | axum::Server::bind(&addr.parse().unwrap()) | ||
56 | .serve(app.into_make_service()) | 57 | .serve(app.into_make_service()) |
57 | .await | 58 | .await |
58 | .unwrap(); | 59 | .unwrap(); |
@@ -63,9 +64,13 @@ pub struct AppState { | |||
63 | } | 64 | } |
64 | 65 | ||
65 | async fn init_db_pool() -> PgPool { | 66 | async fn init_db_pool() -> PgPool { |
67 | #[cfg(not(debug_assertions))] | ||
68 | let db_url = SETTINGS.get_string("database.url").unwrap(); | ||
69 | |||
70 | #[cfg(debug_assertions)] | ||
66 | let db_url = env::var("DATABASE_URL").unwrap(); | 71 | let db_url = env::var("DATABASE_URL").unwrap(); |
67 | 72 | ||
68 | debug!("attempting to connect dbPool to '{}'", db_url); | 73 | debug!("attempt to connect dbPool to '{}'", db_url); |
69 | 74 | ||
70 | let pool = PgPoolOptions::new() | 75 | let pool = PgPoolOptions::new() |
71 | .max_connections(5) | 76 | .max_connections(5) |