shindan_maker/http_utils.rs
1use anyhow::{Context, Result};
2use reqwest::header;
3use reqwest::header::{HeaderMap, HeaderValue};
4
5pub(crate) fn extract_session_cookie(response: &reqwest::Response) -> Result<String> {
6 response
7 .cookies()
8 .find(|cookie| cookie.name() == "_session")
9 .map(|cookie| cookie.value().to_string())
10 .context("Failed to extract session cookie")
11}
12
13pub(crate) fn prepare_headers(session_cookie: &str) -> Result<HeaderMap> {
14 let mut headers = HeaderMap::new();
15 headers.insert(
16 header::CONTENT_TYPE,
17 HeaderValue::from_static("application/x-www-form-urlencoded"),
18 );
19
20 let cookie_value = format!("_session={};", session_cookie);
21 headers.insert(header::COOKIE, HeaderValue::from_str(&cookie_value)?);
22
23 Ok(headers)
24}