Skip to main content

cdk_mintd/env_vars/
payment_backend.rs

1//! Payment backend common environment variables
2
3use std::env;
4
5use crate::config::PaymentBackend;
6
7// Payment backend environment variables
8pub const ENV_PAYMENT_BACKEND: &str = "CDK_MINTD_PAYMENT_BACKEND";
9pub const ENV_PAYMENT_BACKEND_INVOICE_DESCRIPTION: &str =
10    "CDK_MINTD_PAYMENT_BACKEND_INVOICE_DESCRIPTION";
11pub const ENV_PAYMENT_BACKEND_MIN_MINT: &str = "CDK_MINTD_PAYMENT_BACKEND_MIN_MINT";
12pub const ENV_PAYMENT_BACKEND_MAX_MINT: &str = "CDK_MINTD_PAYMENT_BACKEND_MAX_MINT";
13pub const ENV_PAYMENT_BACKEND_MIN_MELT: &str = "CDK_MINTD_PAYMENT_BACKEND_MIN_MELT";
14pub const ENV_PAYMENT_BACKEND_MAX_MELT: &str = "CDK_MINTD_PAYMENT_BACKEND_MAX_MELT";
15
16impl PaymentBackend {
17    pub fn from_env(mut self) -> Self {
18        // PaymentBackendType
19        if let Ok(backend_str) = env::var(ENV_PAYMENT_BACKEND) {
20            if let Ok(backend) = backend_str.parse() {
21                self.backend = backend;
22            } else {
23                tracing::warn!("Unknown payment backend set in env var will attempt to use config file. {backend_str}");
24            }
25        }
26
27        // Optional invoice description
28        if let Ok(description) = env::var(ENV_PAYMENT_BACKEND_INVOICE_DESCRIPTION) {
29            self.invoice_description = Some(description);
30        }
31
32        // Amount fields
33        if let Ok(min_mint_str) = env::var(ENV_PAYMENT_BACKEND_MIN_MINT) {
34            if let Ok(amount) = min_mint_str.parse::<u64>() {
35                self.min_mint = amount.into();
36            }
37        }
38
39        if let Ok(max_mint_str) = env::var(ENV_PAYMENT_BACKEND_MAX_MINT) {
40            if let Ok(amount) = max_mint_str.parse::<u64>() {
41                self.max_mint = amount.into();
42            }
43        }
44
45        if let Ok(min_melt_str) = env::var(ENV_PAYMENT_BACKEND_MIN_MELT) {
46            if let Ok(amount) = min_melt_str.parse::<u64>() {
47                self.min_melt = amount.into();
48            }
49        }
50
51        if let Ok(max_melt_str) = env::var(ENV_PAYMENT_BACKEND_MAX_MELT) {
52            if let Ok(amount) = max_melt_str.parse::<u64>() {
53                self.max_melt = amount.into();
54            }
55        }
56
57        self
58    }
59}