diff --git a/.env b/.env new file mode 100644 index 0000000..0f07082 --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +PORT=13000 +API_VERSION=1 diff --git a/Cargo.lock b/Cargo.lock index f178db2..361eded 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -165,6 +165,12 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + [[package]] name = "encoding_rs" version = "0.8.33" @@ -326,6 +332,7 @@ name = "hik-push-bot" version = "0.1.0" dependencies = [ "axum", + "dotenvy", "reqwest", "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 3c544c6..299928c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,3 +12,4 @@ tokio = { version = "1.35.1", features = ["full"] } tower = "0.4.13" serde = { version = "1.0.195", features = ["derive"] } serde_json = "1.0.111" +dotenvy = "0.15.7" diff --git a/src/main.rs b/src/main.rs index 725f411..19b7c2f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,10 @@ +use std::env; use axum::http::StatusCode; use axum::{ routing::{get, post}, Json, Router, }; +use dotenvy::dotenv; use serde_json::Value; use crate::event_type::get_event_type_map; @@ -41,14 +43,17 @@ async fn event_rcv_handle_v2( #[tokio::main] async fn main() { + // load environment variables from .env file + dotenv().expect(".env file not found"); + let port = env::var("PORT").expect("PORT is not set in .env file"); + // build our application with a single route let app = Router::new() .route("/", get(|| async { "Hello, World!" })) - .route("/eventRcv", post(event_rcv_handle)) - .route("/eventRcv2", post(event_rcv_handle_v2)); + .route("/eventRcv", post(event_rcv_handle_v2)); // run our app with hyper, listening globally on port 3000 - let listener = tokio::net::TcpListener::bind("0.0.0.0:13000") + let listener = tokio::net::TcpListener::bind(format!("0.0.0.0:{}", port)) .await .unwrap(); axum::serve(listener, app).await.unwrap();