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::{
|
use crate::{
|
||||||
structs::release::{CreateReleaseOption, Release}, Result
|
structs::release::{CreateReleaseOption, Release}, CreateResult, Result
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn get_release(id: u64) -> Result<Release> { todo!(); }
|
pub fn get_release(id: u64) -> Result<Release> { todo!(); }
|
||||||
@@ -45,10 +45,20 @@ pub async fn create_release(
|
|||||||
.await
|
.await
|
||||||
.map_err(|e| crate::Error::from(e))?;
|
.map_err(|e| crate::Error::from(e))?;
|
||||||
let new_release = req
|
let new_release = req
|
||||||
.json::<Release>()
|
.json::<CreateResult>()
|
||||||
.await
|
.await
|
||||||
.map_err(|e| crate::Error::from(e))?;
|
.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 edit_release(id: u64) -> Result<Release> { todo!(); }
|
||||||
pub fn delete_release(id: u64) -> Result<()> { todo!(); }
|
pub fn delete_release(id: u64) -> Result<()> { todo!(); }
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ pub enum Error {
|
|||||||
WrappedReqwestErr(reqwest::Error),
|
WrappedReqwestErr(reqwest::Error),
|
||||||
MissingAuthToken,
|
MissingAuthToken,
|
||||||
NoSuchFile, // for release attachment 'file exists' pre-check.
|
NoSuchFile, // for release attachment 'file exists' pre-check.
|
||||||
|
ApiErrorMessage(ApiError),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<reqwest::Error> for crate::Error {
|
impl From<reqwest::Error> for crate::Error {
|
||||||
|
|||||||
Reference in New Issue
Block a user