cdk_mintd/env_vars/
grpc_processor.rs

1//! gRPC Payment Processor environment variables
2
3use std::env;
4
5use cdk::nuts::CurrencyUnit;
6
7use crate::config::GrpcProcessor;
8
9// gRPC Payment Processor environment variables
10pub const ENV_GRPC_PROCESSOR_SUPPORTED_UNITS: &str =
11    "CDK_MINTD_GRPC_PAYMENT_PROCESSOR_SUPPORTED_UNITS";
12pub const ENV_GRPC_PROCESSOR_ADDRESS: &str = "CDK_MINTD_GRPC_PAYMENT_PROCESSOR_ADDRESS";
13pub const ENV_GRPC_PROCESSOR_PORT: &str = "CDK_MINTD_GRPC_PAYMENT_PROCESSOR_PORT";
14pub const ENV_GRPC_PROCESSOR_TLS_DIR: &str = "CDK_MINTD_GRPC_PAYMENT_PROCESSOR_TLS_DIR";
15
16impl GrpcProcessor {
17    pub fn from_env(mut self) -> Self {
18        if let Ok(units_str) = env::var(ENV_GRPC_PROCESSOR_SUPPORTED_UNITS) {
19            if let Ok(units) = units_str
20                .split(',')
21                .map(|s| s.trim().parse())
22                .collect::<Result<Vec<CurrencyUnit>, _>>()
23            {
24                self.supported_units = units;
25            }
26        }
27
28        if let Ok(addr) = env::var(ENV_GRPC_PROCESSOR_ADDRESS) {
29            self.addr = addr;
30        }
31
32        if let Ok(port) = env::var(ENV_GRPC_PROCESSOR_PORT) {
33            if let Ok(port) = port.parse() {
34                self.port = port;
35            }
36        }
37
38        if let Ok(tls_dir) = env::var(ENV_GRPC_PROCESSOR_TLS_DIR) {
39            self.tls_dir = Some(tls_dir.into());
40        }
41
42        self
43    }
44}