use reqwest::header::HeaderMap;
use super::SunoClient;
use crate::auth;
impl SunoClient {
pub(crate) fn headers(&self) -> HeaderMap {
let mut headers = HeaderMap::new();
let (jwt, device) = {
let auth = self.auth.lock().expect("auth mutex poisoned");
(
auth.jwt.clone(),
auth.device_id
.clone()
.unwrap_or_else(|| "00000000-0000-0000-0000-000000000000".to_string()),
)
};
if let Some(jwt) = jwt
&& let Ok(val) = format!("Bearer {jwt}").parse()
{
headers.insert("authorization", val);
}
if let Ok(val) = device.parse() {
headers.insert("device-id", val);
}
if let Ok(val) = auth::browser_token().parse() {
headers.insert("browser-token", val);
}
if let Ok(val) = "https://suno.com".parse() {
headers.insert("origin", val);
}
if let Ok(val) = "https://suno.com/".parse() {
headers.insert("referer", val);
}
headers
}
}