From 71822bcf9b16afc0b893a6e68eb5bc18b77685ec Mon Sep 17 00:00:00 2001 From: Ashley Lewis Date: Mon, 5 Aug 2019 17:56:56 -0500 Subject: [PATCH] feat: kv delete --- docs/content/kv_commands.md | 10 ++++++++++ src/commands/kv/delete_namespace.rs | 25 +++++++++++++++++++++++++ src/commands/kv/mod.rs | 2 ++ src/main.rs | 10 ++++++++++ 4 files changed, 47 insertions(+) create mode 100644 src/commands/kv/delete_namespace.rs diff --git a/docs/content/kv_commands.md b/docs/content/kv_commands.md index 5b8e82518..3ab858bc1 100644 --- a/docs/content/kv_commands.md +++ b/docs/content/kv_commands.md @@ -25,3 +25,13 @@ $ wrangler kv create "new kv namespace" title: "new kv namespace", } ``` + +### `delete ` + +#### Usage + +``` sh +$ wrangler kv delete f7b02e7fc70443149ac906dd81ec1791 +🌀 Deleting namespace f7b02e7fc70443149ac906dd81ec1791 🌀 +✨ Success +``` diff --git a/src/commands/kv/delete_namespace.rs b/src/commands/kv/delete_namespace.rs new file mode 100644 index 000000000..d3a3f3cfd --- /dev/null +++ b/src/commands/kv/delete_namespace.rs @@ -0,0 +1,25 @@ +use cloudflare::apiclient::APIClient; + +use cloudflare::workerskv::remove_namespace::RemoveNamespace; + +use crate::terminal::message; + +pub fn delete_namespace(id: &str) -> Result<(), failure::Error> { + let client = super::api_client()?; + let account_id = super::account_id()?; + + let msg = format!("Deleting namespace {}", id); + message::working(&msg); + + let response = client.request(&RemoveNamespace { + account_identifier: &account_id, + namespace_identifier: id, + }); + + match response { + Ok(_success) => message::success("Success"), + Err(e) => super::print_error(e), + } + + Ok(()) +} diff --git a/src/commands/kv/mod.rs b/src/commands/kv/mod.rs index 5880b1890..6604caa02 100644 --- a/src/commands/kv/mod.rs +++ b/src/commands/kv/mod.rs @@ -7,8 +7,10 @@ use crate::settings; use crate::terminal::message; mod create_namespace; +mod delete_namespace; pub use create_namespace::create_namespace; +pub use delete_namespace::delete_namespace; fn api_client() -> Result { let user = settings::global_user::GlobalUser::new()?; diff --git a/src/main.rs b/src/main.rs index f8828b608..57844ce6a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -58,6 +58,12 @@ fn run() -> Result<(), failure::Error> { Arg::with_name("title") ) ) + .subcommand( + SubCommand::with_name("delete") + .arg( + Arg::with_name("id") + ) + ) ) .subcommand( SubCommand::with_name("generate") @@ -253,6 +259,10 @@ fn run() -> Result<(), failure::Error> { let title = create_matches.value_of("title").unwrap(); commands::kv::create_namespace(title)?; } + ("delete", Some(delete_matches)) => { + let id = delete_matches.value_of("id").unwrap(); + commands::kv::delete_namespace(id)?; + } ("", None) => message::warn("kv expects a subcommand"), _ => unreachable!(), }