use orign::config::GlobalConfig;
use reqwest::Client;
use std::error::Error;
pub async fn delete_deployment(id: String) -> Result<(), Box<dyn Error>> {
let client = Client::new();
let config = GlobalConfig::read()?;
let server = config.server.unwrap();
let api_key = config.api_key.as_deref().ok_or("API key not set")?;
let bearer_token = format!("Bearer {}", api_key);
let url = format!("{}/v1/deployments/{}", server, id.trim());
let response = client
.delete(&url)
.header("Authorization", bearer_token)
.send()
.await?;
if response.status().is_success() {
println!("Deployment deleted successfully");
} else {
let error_text = response.text().await?;
eprintln!("Error: {}", error_text);
}
Ok(())
}
pub async fn delete_buffer(full_name: String) -> Result<(), Box<dyn Error>> {
let parts: Vec<&str> = full_name.split('/').collect();
if parts.len() != 2 {
return Err("Buffer name must be in the format 'namespace/name'".into());
}
let namespace = parts[0].trim();
let name = parts[1].trim();
let client = Client::new();
let config = GlobalConfig::read()?;
let server = config.server.ok_or("Server URL not set in config")?;
let api_key = config.api_key.as_deref().ok_or("API key not set")?;
let bearer_token = format!("Bearer {}", api_key);
let url = format!("{}/v1/buffers/{}/{}", server, namespace, name);
let response = client
.delete(&url)
.header("Authorization", bearer_token)
.send()
.await?;
if response.status().is_success() {
println!("Buffer deleted successfully.");
} else {
let error_text = response.text().await?;
eprintln!("Error while deleting buffer: {}", error_text);
}
Ok(())
}
pub async fn delete_adapter(full_name: String) -> Result<(), Box<dyn Error>> {
let parts: Vec<&str> = full_name.split('/').collect();
if parts.len() != 2 {
return Err("Buffer name must be in the format 'namespace/name'".into());
}
let namespace = parts[0].trim();
let name = parts[1].trim();
let client = Client::new();
let config = GlobalConfig::read()?;
let server = config.server.ok_or("Server URL not set in config")?;
let api_key = config.api_key.as_deref().ok_or("API key not set")?;
let bearer_token = format!("Bearer {}", api_key);
let url = format!("{}/v1/adapters/{}/{}", server, namespace, name);
let response = client
.delete(&url)
.header("Authorization", bearer_token)
.send()
.await?;
if response.status().is_success() {
println!("Adapter deleted successfully.");
} else {
let error_text = response.text().await?;
eprintln!("Error while deleting adapter: {}", error_text);
}
Ok(())
}