use std::convert::Infallible;
use bunny_api::{purge::purge_url, ClientError};
use clap::Parser;
use super::Common;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error(transparent)]
Client(#[from] ClientError),
#[error(transparent)]
Purge(#[from] bunny_api::Error<Infallible>),
}
#[derive(Debug, Parser)]
pub struct Cli {
#[clap(flatten)]
common: Common,
url: String,
#[clap(long)]
wait: bool,
}
impl Cli {
pub async fn run(self) -> Result<(), Error> {
let Self { common, url, wait } = self;
let client = common.client()?;
purge_url(&client, &url, wait).await.map_err(Error::from)
}
}