myc_notifier/models/
queue_config.rs1use super::tmp_config::TmpConfig;
2
3use myc_config::{load_config_from_file, secret_resolver::SecretResolver};
4use mycelium_base::utils::errors::{creation_err, MappedErrors};
5use serde::Deserialize;
6use std::path::PathBuf;
7
8#[derive(Clone, Debug, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct QueueConfig {
11 pub email_queue_name: SecretResolver<String>,
12 pub consume_interval_in_secs: SecretResolver<u64>,
13}
14
15impl QueueConfig {
16 pub fn from_default_config_file(
17 file: PathBuf,
18 ) -> Result<Self, MappedErrors> {
19 if !file.exists() {
20 return creation_err(format!(
21 "Could not find config file: {}",
22 file.to_str().unwrap()
23 ))
24 .as_error();
25 }
26
27 match load_config_from_file::<TmpConfig>(file) {
28 Ok(config) => Ok(config.queue),
29 Err(err) => Err(err),
30 }
31 }
32}