mod common;
mod create;
mod delete;
mod edit;
mod leave;
mod list;
mod user;
mod view;
use clap::{Parser, Subcommand};
use create::TeamsCreateArgs;
use delete::TeamsDeleteArgs;
use edit::TeamsEditArgs;
use leave::TeamLeaveArgs;
use list::TeamListArgs;
use user::TeamsUserCommands;
use view::TeamViewArgs;
#[derive(Parser, Debug)]
pub struct TeamsCli {
#[clap(subcommand)]
commands: TeamsCommands,
}
#[derive(Subcommand, Debug)]
#[clap(about = "Manage teams")]
enum TeamsCommands {
#[clap(about = "Create a new team")]
Create(TeamsCreateArgs),
#[clap(about = "Delete a team")]
Delete(TeamsDeleteArgs),
#[clap(about = "Edit a team")]
Edit(TeamsEditArgs),
#[clap(about = "Leave a team")]
Leave(TeamLeaveArgs),
#[clap(about = "List all teams")]
List(TeamListArgs),
#[clap(about = "Manage team users")]
User(TeamsUserCommands),
#[clap(about = "View a team details")]
View(TeamViewArgs),
}
pub fn match_command(input: &TeamsCli) {
match &input.commands {
TeamsCommands::Create(args) => create::create(&args),
TeamsCommands::Delete(args) => delete::delete(&args),
TeamsCommands::Edit(args) => edit::edit(&args),
TeamsCommands::Leave(args) => leave::leave(&args),
TeamsCommands::List(args) => list::list(&args),
TeamsCommands::User(args) => user::teams_user_commands(args),
TeamsCommands::View(args) => view::view(&args),
}
}