use std::error::Error;
use reqwest::{Method, StatusCode};
use crate::{PatTokenDeleteRequest, PatTokenManager, crud::error::DEVOPS_ERROR_MESSAGE};
impl PatTokenManager {
pub async fn delete_pat_token(
&self,
delete_request: PatTokenDeleteRequest,
) -> Result<StatusCode, Box<dyn Error>> {
let response = self
.base_request(Method::DELETE, &self.pat_url)
.query(&[("authorizationId", &delete_request.authorization_id)])
.send()
.await?;
log::debug!("{:#?}", response);
match response.error_for_status() {
Ok(response) => Ok(response.status()),
Err(e) => {
log::debug!("Error: {:#?}", e);
if let Some(status) = e.status()
&& status.is_client_error()
{
return Err::<StatusCode, Box<dyn Error>>(DEVOPS_ERROR_MESSAGE.into());
}
Err::<StatusCode, Box<dyn Error>>(Box::new(e))
}
}
}
}