use crate::common::app_context::AppContext;
use crate::http_client::{MantaClient, OpenApiResultExt};
use crate::output::action_result;
use chrono::NaiveDateTime;
pub struct ExecParams<'a> {
pub configuration_name_pattern: Option<&'a str>,
pub since: Option<NaiveDateTime>,
pub until: Option<NaiveDateTime>,
pub output: Option<&'a str>,
}
pub async fn exec(
ctx: &AppContext<'_>,
token: &str,
p: ExecParams<'_>,
) -> Result<(), anyhow::Error> {
let since_str = p.since.map(|d| d.to_string());
let until_str = p.until.map(|d| d.to_string());
let client = MantaClient::from_app_ctx(ctx, Some(token))?;
let result = client
.openapi
.delete_configurations(
Some(false),
p.configuration_name_pattern,
since_str.as_deref(),
until_str.as_deref(),
client.site_name(),
)
.await
.into_anyhow()?;
action_result::print_with_data("Configurations deleted", &result, p.output)?;
Ok(())
}