From 6648d1da1df9a4e4e2945739fc0fd3c7f77643cb Mon Sep 17 00:00:00 2001 From: fx Date: Sat, 14 Oct 2023 22:01:33 +0200 Subject: test this fing shit on pi wohoo --- src/main.rs | 15 ++++++++++----- src/routes/device.rs | 4 ++++ src/routes/start.rs | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) (limited to 'src') 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; use time::util::local_offset; use tracing::{debug, info, level_filters::LevelFilter}; use tracing_subscriber::{EnvFilter, fmt::{self, time::LocalTime}, prelude::*}; +use crate::config::SETTINGS; use crate::routes::device::{get_device, post_device, put_device}; use crate::routes::start::start; @@ -37,13 +38,12 @@ async fn main() { let version = env!("CARGO_PKG_VERSION"); - info!("starting webol v{}", version); + info!("start webol v{}", version); let db = init_db_pool().await; let shared_state = Arc::new(AppState { db }); - // build our application with a single route let app = Router::new() .route("/start", post(start)) .route("/device", get(get_device)) @@ -51,8 +51,9 @@ async fn main() { .route("/device", post(post_device)) .with_state(shared_state); - // TODO: Add to config - axum::Server::bind(&"0.0.0.0:3000".parse().unwrap()) + let addr = SETTINGS.get_string("serveraddr").unwrap_or("0.0.0.0:7229".to_string()); + info!("start server on {}", addr); + axum::Server::bind(&addr.parse().unwrap()) .serve(app.into_make_service()) .await .unwrap(); @@ -63,9 +64,13 @@ pub struct AppState { } async fn init_db_pool() -> PgPool { + #[cfg(not(debug_assertions))] + let db_url = SETTINGS.get_string("database.url").unwrap(); + + #[cfg(debug_assertions)] let db_url = env::var("DATABASE_URL").unwrap(); - debug!("attempting to connect dbPool to '{}'", db_url); + debug!("attempt to connect dbPool to '{}'", db_url); let pool = PgPoolOptions::new() .max_connections(5) diff --git a/src/routes/device.rs b/src/routes/device.rs index d5d7144..025c7d0 100644 --- a/src/routes/device.rs +++ b/src/routes/device.rs @@ -4,11 +4,13 @@ use axum::headers::HeaderMap; use axum::Json; use serde::{Deserialize, Serialize}; use serde_json::{json, Value}; +use tracing::info; use crate::auth::auth; use crate::db::Device; use crate::error::WebolError; pub async fn get_device(State(state): State>, headers: HeaderMap, Json(payload): Json) -> Result, WebolError> { + info!("GET request"); let secret = headers.get("authorization"); if auth(secret).map_err(WebolError::Auth)? { let device = sqlx::query_as!( @@ -33,6 +35,7 @@ pub struct GetDevicePayload { } pub async fn put_device(State(state): State>, headers: HeaderMap, Json(payload): Json) -> Result, WebolError> { + info!("PUT request"); let secret = headers.get("authorization"); if auth(secret).map_err(WebolError::Auth)? { sqlx::query!( @@ -64,6 +67,7 @@ pub struct PutDeviceResponse { } pub async fn post_device(State(state): State>, headers: HeaderMap, Json(payload): Json) -> Result, WebolError> { + info!("POST request"); let secret = headers.get("authorization"); if auth(secret).map_err(WebolError::Auth)? { let device = sqlx::query_as!( diff --git a/src/routes/start.rs b/src/routes/start.rs index d16ea4e..2e6a648 100644 --- a/src/routes/start.rs +++ b/src/routes/start.rs @@ -28,7 +28,7 @@ pub async fn start(State(state): State>, headers: HeaderMap let bind_addr = SETTINGS .get_string("bindaddr") - .map_err(|err| WebolError::Server(Box::new(err)))?; + .unwrap_or("0.0.0.0:1111".to_string()); let _ = send_packet( &bind_addr.parse().map_err(|err| WebolError::Server(Box::new(err)))?, -- cgit v1.2.3