use clap::Subcommand;
use covert_sdk::{namespace::CreateNamespaceParams, Client};
use crate::handle_resp;
#[derive(clap::Args, Debug)]
pub struct Namespace {
#[clap(subcommand)]
subcommand: NamespaceSubcommand,
}
#[derive(Subcommand, Debug)]
pub enum NamespaceSubcommand {
#[command(about = "create new namespace")]
Create { name: String },
#[command(about = "delete namespace recursively")]
Delete { name: String },
#[command(about = "list namespaces")]
List,
}
impl Namespace {
pub async fn handle(self, sdk: &Client) {
match self.subcommand {
NamespaceSubcommand::Create { name } => {
let resp = sdk.namespace.create(&CreateNamespaceParams { name }).await;
handle_resp(resp);
}
NamespaceSubcommand::Delete { name } => {
let resp = sdk.namespace.delete(&name).await;
handle_resp(resp);
}
NamespaceSubcommand::List => {
let resp = sdk.namespace.list().await;
handle_resp(resp);
}
}
}
}