use std::process::exit;
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 DeleteCalendarCommand {
pub id: String,
#[arg(long, short)]
pub yes: bool,
}
impl DeleteCalendarCommand {
pub fn execute(self, printer: &mut impl Printer, account: Account) -> Result<()> {
if !self.yes {
let confirm = "Do you really want to delete this calendar";
let confirm = format!("{confirm}? All calendar items will be definitely deleted.");
if !prompt::bool(confirm, false)? {
exit(0);
};
};
let mut client = Client::new(&account)?;
client.delete_calendar(self.id)?;
printer.out(Message::new("calendar successfully deleted"))
}
}