cdk_mint_rpc/mint_rpc_cli/subcommands/
update_mint_method.rs1use anyhow::Result;
2use clap::Args;
3use tonic::Request;
4
5use crate::payment_method::{Bolt11MintMethodOptions, UpdateMintMethodRequest};
6use crate::InterceptedPaymentMethodServiceClient;
7
8#[derive(Args, Debug)]
14pub struct UpdateMintMethodCommand {
15 #[arg(short, long)]
17 #[arg(default_value = "sat")]
18 unit: String,
19 #[arg(short, long)]
21 #[arg(default_value = "bolt11")]
22 method: String,
23 #[arg(long)]
25 min_amount: Option<u64>,
26 #[arg(long)]
28 max_amount: Option<u64>,
29 #[arg(long)]
31 method_name: Option<String>,
32 #[arg(long)]
34 description: Option<bool>,
35}
36
37pub async fn update_mint_method(
46 client: &mut InterceptedPaymentMethodServiceClient,
47 sub_command_args: &UpdateMintMethodCommand,
48) -> Result<()> {
49 let options = sub_command_args
51 .description
52 .map(|description| Bolt11MintMethodOptions { description });
53
54 let response = client
55 .update_mint_method(Request::new(UpdateMintMethodRequest {
56 method: sub_command_args.method.clone(),
57 unit: sub_command_args.unit.clone(),
58 min_amount: sub_command_args.min_amount,
59 max_amount: sub_command_args.max_amount,
60 options,
61 method_name: sub_command_args.method_name.clone(),
62 }))
63 .await?
64 .into_inner();
65
66 println!("Mint method settings:");
67 println!(" Unit: {}", response.unit);
68 println!(" Method: {}", response.method);
69 println!(
70 " Min amount: {}",
71 response
72 .min_amount
73 .map_or("none".to_string(), |a| a.to_string())
74 );
75 println!(
76 " Max amount: {}",
77 response
78 .max_amount
79 .map_or("none".to_string(), |a| a.to_string())
80 );
81 println!(
82 " Method name: {}",
83 response.method_name.unwrap_or_else(|| "none".to_string())
84 );
85 if let Some(options) = response.options {
86 println!(" Bolt11 description: {}", options.description);
87 }
88
89 Ok(())
90}