Fix API response decoding -- sometimes it's an err
The reqwest might work, but the API still returns an error message. I forgot about this old hack I had left around because I'm a big dummy.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
|
||||
use crate::{
|
||||
structs::release::{CreateReleaseOption, Release}, Result
|
||||
structs::release::{CreateReleaseOption, Release}, CreateResult, Result
|
||||
};
|
||||
|
||||
pub fn get_release(id: u64) -> Result<Release> { todo!(); }
|
||||
@@ -45,10 +45,20 @@ pub async fn create_release(
|
||||
.await
|
||||
.map_err(|e| crate::Error::from(e))?;
|
||||
let new_release = req
|
||||
.json::<Release>()
|
||||
.json::<CreateResult>()
|
||||
.await
|
||||
.map_err(|e| crate::Error::from(e))?;
|
||||
return Ok(new_release);
|
||||
match new_release {
|
||||
CreateResult::Success(release) => Ok(release),
|
||||
CreateResult::ErrWithMessage(api_error) => {
|
||||
if api_error.message == "token is required" {
|
||||
Err(crate::Error::MissingAuthToken)
|
||||
} else {
|
||||
Err(crate::Error::ApiErrorMessage(api_error))
|
||||
}
|
||||
},
|
||||
CreateResult::Empty => panic!("How can we have 200 OK and no release info? No. Crash"),
|
||||
}
|
||||
}
|
||||
pub fn edit_release(id: u64) -> Result<Release> { todo!(); }
|
||||
pub fn delete_release(id: u64) -> Result<()> { todo!(); }
|
||||
|
||||
@@ -16,6 +16,7 @@ pub enum Error {
|
||||
WrappedReqwestErr(reqwest::Error),
|
||||
MissingAuthToken,
|
||||
NoSuchFile, // for release attachment 'file exists' pre-check.
|
||||
ApiErrorMessage(ApiError),
|
||||
}
|
||||
|
||||
impl From<reqwest::Error> for crate::Error {
|
||||
|
||||
Reference in New Issue
Block a user