From 6bdad44cc6c77c564414fb1f4c77e94c9bdef0c7 Mon Sep 17 00:00:00 2001 From: Robert Garrett Date: Sat, 7 Jun 2025 23:15:39 -0500 Subject: [PATCH] Interrogate list_releases result more closely --- src/api/release.rs | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/api/release.rs b/src/api/release.rs index 09f925a..27f2aad 100644 --- a/src/api/release.rs +++ b/src/api/release.rs @@ -23,15 +23,26 @@ pub async fn list_releases( let request_url = format!("{gitea_url}/api/v1/repos/{repo}/releases/"); let req = client.get(request_url).send().await; let response = req.map_err(|reqwest_err| crate::Error::WrappedReqwestErr(reqwest_err))?; - let release_list = response - .json::>() - .await - .map_err(|reqwest_err| { - // Convert reqwest errors to my own - // TODO: Create all error variants (see lib.rs) - crate::Error::WrappedReqwestErr(reqwest_err) - })?; - return Ok(release_list); + if response.status().is_success() { + let release_list = response + .json::>() + .await + .map_err(|reqwest_err| { + // Convert reqwest errors to my own + // TODO: Create all error variants (see lib.rs) + crate::Error::WrappedReqwestErr(reqwest_err) + })?; + return Ok(release_list); + } else if response.status().is_client_error() { + let mesg = response + .json::() + .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)]