gitdataai/lib/config/app.rs

45 lines
1.3 KiB
Rust

use crate::AppConfig;
impl AppConfig {
pub fn app_name(&self) -> anyhow::Result<String> {
if let Some(name) = self.env.get("APP_NAME") {
return Ok(name.to_string());
}
Ok(env!("CARGO_PKG_NAME").to_string())
}
pub fn app_version(&self) -> anyhow::Result<String> {
if let Some(version) = self.env.get("APP_VERSION") {
return Ok(version.to_string());
}
Ok(env!("CARGO_PKG_VERSION").to_string())
}
pub fn app_description(&self) -> anyhow::Result<String> {
if let Some(description) = self.env.get("APP_DESCRIPTION") {
return Ok(description.to_string());
}
Ok(env!("CARGO_PKG_DESCRIPTION").to_string())
}
pub fn api_port(&self) -> anyhow::Result<u16> {
if let Some(port) = self.env.get("APP_API_PORT") {
return Ok(port.parse::<u16>()?);
}
Ok(8080)
}
pub fn email_health_port(&self) -> u16 {
self.env
.get("APP_EMAIL_HEALTH_PORT")
.and_then(|port| port.parse::<u16>().ok())
.unwrap_or(8083)
}
pub fn session_secret(&self) -> anyhow::Result<String> {
if let Some(secret) = self.env.get("APP_SESSION_SECRET") {
return Ok(secret.to_string());
}
Err(anyhow::anyhow!("APP_SESSION_SECRET not found"))
}
}