grpc_processor.rs 1.3 KB

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