use anyhow::Result;
use clap::Parser;
use pimalaya_cli::printer::Printer;
use crate::{
account::context::Account,
msgraph::{client::MsgraphClient, mail_folder::list::folders_table},
};
#[derive(Debug, Parser)]
pub struct MsgraphMailFolderGetCommand {
#[arg(value_name = "ID", required = true)]
pub ids: Vec<String>,
}
impl MsgraphMailFolderGetCommand {
pub fn execute(
self,
printer: &mut impl Printer,
account: &mut Account,
client: &mut MsgraphClient,
) -> Result<()> {
let mut folders = Vec::with_capacity(self.ids.len());
for id in self.ids {
folders.push(client.mail_folder_get(&id)?.response);
}
printer.out(folders_table(account, folders))
}
}