pmis 1.0.1

Companion CLI tool for paste.misterio.me
Documentation
use crate::{Client, Result, Session, Url, Uuid};
use anyhow::anyhow;
use reqwest::StatusCode;

pub async fn delete(api: Url, id: Uuid) -> Result<()> {
    let session = Session::load()?;
    let client = Client::new();

    let url = api.join(&format!("/p/{}", id))?;
    let res = client.delete(url).bearer_auth(session.key()).send().await?;

    if res.status() == StatusCode::NOT_FOUND {
        return Err(anyhow!("The requested paste does not exist"));
    } else if res.status() == StatusCode::FORBIDDEN {
        return Err(anyhow!("You can only delete your own pastes"));
    } else if res.status() == StatusCode::UNAUTHORIZED {
        return Err(anyhow!(
            "Your API key is invalid or has been revoked. Try `pmis auth`"
        ));
    }
    res.error_for_status()?;

    println!("Paste {} successfully deleted.", id);

    Ok(())
}