55 lines
1.6 KiB
Rust
55 lines
1.6 KiB
Rust
use crate::config::AppConfig;
|
|
use crate::error::{AppError, AppResult};
|
|
|
|
impl AppConfig {
|
|
pub fn nats_url(&self) -> AppResult<String> {
|
|
self.get_env::<String>("APP_NATS_URL")?
|
|
.filter(|s| !s.is_empty())
|
|
.ok_or_else(|| AppError::Config("APP_NATS_URL is not set".into()))
|
|
}
|
|
|
|
pub fn nats_username(&self) -> AppResult<Option<String>> {
|
|
self.get_env::<String>("APP_NATS_USERNAME")
|
|
}
|
|
|
|
pub fn nats_password(&self) -> AppResult<Option<String>> {
|
|
self.get_env::<String>("APP_NATS_PASSWORD")
|
|
}
|
|
|
|
pub fn nats_token(&self) -> AppResult<Option<String>> {
|
|
self.get_env::<String>("APP_NATS_TOKEN")
|
|
}
|
|
|
|
pub fn nats_tls_enabled(&self) -> AppResult<bool> {
|
|
self.get_env_or("APP_NATS_TLS_ENABLED", false)
|
|
}
|
|
|
|
pub fn nats_connection_timeout_secs(&self) -> AppResult<u64> {
|
|
self.get_env_or("APP_NATS_CONNECTION_TIMEOUT", 5)
|
|
}
|
|
|
|
pub fn nats_ping_interval_secs(&self) -> AppResult<u64> {
|
|
self.get_env_or("APP_NATS_PING_INTERVAL", 20)
|
|
}
|
|
|
|
pub fn nats_reconnect_delay_secs(&self) -> AppResult<u64> {
|
|
self.get_env_or("APP_NATS_RECONNECT_DELAY", 2)
|
|
}
|
|
|
|
pub fn nats_max_reconnects(&self) -> AppResult<usize> {
|
|
self.get_env_or("APP_NATS_MAX_RECONNECTS", 60usize)
|
|
}
|
|
|
|
pub fn nats_stream_prefix(&self) -> AppResult<String> {
|
|
self.get_env_or("APP_NATS_STREAM_PREFIX", "APPKS".to_string())
|
|
}
|
|
|
|
pub fn nats_default_ack_wait_secs(&self) -> AppResult<u64> {
|
|
self.get_env_or("APP_NATS_ACK_WAIT_SECS", 30)
|
|
}
|
|
|
|
pub fn nats_default_max_deliver(&self) -> AppResult<i64> {
|
|
self.get_env_or("APP_NATS_MAX_DELIVER", 5i64)
|
|
}
|
|
}
|