add gitea sig header check, add Json errors, begin AppState
This commit is contained in:
+20
-3
@@ -1,19 +1,36 @@
|
||||
use anyhow::anyhow;
|
||||
use dotenvy::dotenv;
|
||||
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct EnvConfig {
|
||||
pub http_port: u16,
|
||||
pub webhook_secret: String,
|
||||
pub open_router_api_key: String,
|
||||
pub bot_name: String,
|
||||
}
|
||||
|
||||
pub fn load_config() -> anyhow::Result<EnvConfig> {
|
||||
dotenv().ok();
|
||||
|
||||
let http_port = std::env::var("HTTP_PORT")?.parse()?;
|
||||
let bot_name = std::env::var("BOT_NAME")?;
|
||||
let http_port = try_get_env("HTTP_PORT")?.parse()?;
|
||||
let bot_name = try_get_env("BOT_NAME")?;
|
||||
let webhook_secret = try_get_env("WEBHOOK_SIG_HEADER_SECRET")?;
|
||||
let open_router_api_key = try_get_env("OPEN_ROUTER_API_KEY")?;
|
||||
|
||||
Ok(EnvConfig {
|
||||
http_port,
|
||||
webhook_secret,
|
||||
bot_name,
|
||||
open_router_api_key,
|
||||
})
|
||||
}
|
||||
|
||||
fn try_get_env(key: &str) -> anyhow::Result<String> {
|
||||
let env = std::env::var(key)?;
|
||||
|
||||
if env.trim().len() == 0 {
|
||||
return Err(anyhow!(format!("env var {} is empty", env)));
|
||||
}
|
||||
|
||||
Ok(env)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user