use super::*;
#[derive(Serialize)]
struct Request {
token: String,
}
#[derive(Deserialize)]
struct Response {
id: i32,
}
#[derive(Debug)]
pub enum Returns {
InvalidToken,
Valid(i32),
}
impl Client {
pub async fn reset_password_check(
&self,
token: String,
) -> Result<Returns, Box<dyn std::error::Error>> {
let res = req()
.get(self.endpoint("/v1/users/reset", vec![]))
.json(&Request { token })
.send()
.await?;
match res.status() {
StatusCode::NOT_FOUND => Ok(Returns::InvalidToken),
StatusCode::OK => Ok(Returns::Valid(res.json::<Response>().await?.id)),
_ => Err("Unknown Response Status Code".into()),
}
}
}