use crate::{Client, RoboatError, XCSRF_HEADER};
use reqwest::header;
const AUTH_BASE_URL: &str = "https://auth.roblox.com/";
impl Client {
pub async fn force_refresh_xcsrf(&self) -> Result<(), RoboatError> {
let builder = self
.reqwest_client
.post(AUTH_BASE_URL)
.header(XCSRF_HEADER, self.xcsrf().await);
let builder = match self.cookie_string() {
Ok(cookie_string) => builder.header(header::COOKIE, cookie_string),
Err(_) => builder,
};
let request_result = builder.send().await;
match Self::validate_request_result(request_result).await {
Ok(_) => Ok(()),
Err(e) => match e {
RoboatError::InvalidXcsrf(xcsrf) => {
self.set_xcsrf(xcsrf).await;
Ok(())
}
_ => Err(e),
},
}
}
}