bunny-api 0.0.5

Alpha API client for Bunny.net
Documentation
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)
    }
}