pub(crate) mod check;
pub(crate) mod lookup_folder;
pub(crate) mod show;
use anyhow::Result;
use clap::{Parser, Subcommand};
use crate::cli::drive::helpers;
#[derive(Parser)]
pub struct PermissionsCommand {
#[command(subcommand)]
pub command: PermissionsSubcommands,
}
#[derive(Subcommand)]
pub enum PermissionsSubcommands {
Show(show::ShowCommand),
LookupFolder(lookup_folder::LookupFolderCommand),
Check(check::CheckCommand),
}
impl PermissionsCommand {
pub async fn execute(self) -> Result<()> {
match self.command {
PermissionsSubcommands::Show(cmd) => cmd.execute(),
PermissionsSubcommands::LookupFolder(cmd) => {
let client = helpers::create_client()?;
cmd.execute(&client).await
}
PermissionsSubcommands::Check(cmd) => {
let client = helpers::create_client()?;
cmd.execute(&client).await
}
}
}
}
#[cfg(test)]
#[allow(clippy::unwrap_used)]
mod tests {
use super::*;
use crate::cli::drive::format::OutputFormat;
#[test]
fn permissions_subcommands_show_variant() {
let cmd = PermissionsCommand {
command: PermissionsSubcommands::Show(show::ShowCommand {
output: OutputFormat::Table,
}),
};
assert!(matches!(cmd.command, PermissionsSubcommands::Show(_)));
}
}