use std::process;
use anyhow::Result;
use clap::Parser;
use pimalaya_toolbox::terminal::{
printer::{Message, Printer},
prompt,
};
use crate::{account::Account, client::Client};
#[derive(Debug, Parser)]
pub struct DeleteItemCommand {
#[arg(name = "CALENDAR-ID")]
pub calendar_id: String,
#[arg(name = "ITEM-ID")]
pub id: String,
#[arg(long, short)]
pub yes: bool,
}
impl DeleteItemCommand {
pub fn execute(self, printer: &mut impl Printer, account: Account) -> Result<()> {
if !self.yes {
let confirm = "Do you really want to delete this calendar item?";
if !prompt::bool(confirm, false)? {
process::exit(0);
};
};
let mut client = Client::new(&account)?;
client.delete_item(self.calendar_id, self.id)?;
printer.out(Message::new("Item successfully deleted"))
}
}