Interrogate list_releases result more closely
This commit is contained in:
@@ -23,15 +23,26 @@ pub async fn list_releases(
|
|||||||
let request_url = format!("{gitea_url}/api/v1/repos/{repo}/releases/");
|
let request_url = format!("{gitea_url}/api/v1/repos/{repo}/releases/");
|
||||||
let req = client.get(request_url).send().await;
|
let req = client.get(request_url).send().await;
|
||||||
let response = req.map_err(|reqwest_err| crate::Error::WrappedReqwestErr(reqwest_err))?;
|
let response = req.map_err(|reqwest_err| crate::Error::WrappedReqwestErr(reqwest_err))?;
|
||||||
let release_list = response
|
if response.status().is_success() {
|
||||||
.json::<Vec<Release>>()
|
let release_list = response
|
||||||
.await
|
.json::<Vec<Release>>()
|
||||||
.map_err(|reqwest_err| {
|
.await
|
||||||
// Convert reqwest errors to my own
|
.map_err(|reqwest_err| {
|
||||||
// TODO: Create all error variants (see lib.rs)
|
// Convert reqwest errors to my own
|
||||||
crate::Error::WrappedReqwestErr(reqwest_err)
|
// TODO: Create all error variants (see lib.rs)
|
||||||
})?;
|
crate::Error::WrappedReqwestErr(reqwest_err)
|
||||||
return Ok(release_list);
|
})?;
|
||||||
|
return Ok(release_list);
|
||||||
|
} else if response.status().is_client_error() {
|
||||||
|
let mesg = response
|
||||||
|
.json::<ApiError>()
|
||||||
|
.await
|
||||||
|
.map_err(|reqwest_err| {
|
||||||
|
crate::Error::WrappedReqwestErr(reqwest_err)
|
||||||
|
})?;
|
||||||
|
return Err(crate::Error::ApiErrorMessage(mesg));
|
||||||
|
}
|
||||||
|
panic!("Reached end of list_releases without matching a return pathway.");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
|
|||||||
Reference in New Issue
Block a user