mostro_client/cli/
adm_send_dm.rs

1use crate::cli::Context;
2use crate::parser::common::{
3    create_emoji_field_row, create_field_value_header, create_standard_table,
4};
5use crate::util::messaging::get_admin_keys;
6use crate::util::send_admin_gift_wrap_dm;
7use anyhow::Result;
8use nostr_sdk::prelude::*;
9
10pub async fn execute_adm_send_dm(receiver: PublicKey, ctx: &Context, message: &str) -> Result<()> {
11    // Get admin keys
12    let admin_keys = get_admin_keys(ctx)?;
13
14    println!("👑 Admin Direct Message");
15    println!("═══════════════════════════════════════");
16    let mut table = create_standard_table();
17    table.set_header(create_field_value_header());
18    table.add_row(create_emoji_field_row(
19        "🔑 ",
20        "Admin Keys",
21        &admin_keys.public_key().to_hex(),
22    ));
23    table.add_row(create_emoji_field_row(
24        "🎯 ",
25        "Recipient",
26        &receiver.to_string(),
27    ));
28    table.add_row(create_emoji_field_row("💬 ", "Message", message));
29    println!("{table}");
30    println!("💡 Sending admin gift wrap message...\n");
31
32    send_admin_gift_wrap_dm(&ctx.client, admin_keys, &receiver, message).await?;
33
34    println!(
35        "✅ Admin gift wrap message sent successfully to {}",
36        receiver
37    );
38
39    Ok(())
40}