use axum::http::{HeaderMap, HeaderValue};
pub(crate) fn set_preference_applied(headers: &mut HeaderMap, prefs: &[&str]) {
let prefs: Vec<&&str> = prefs.iter().filter(|p| !p.is_empty()).collect();
if prefs.is_empty() {
return;
}
let value: String = prefs.iter().map(|p| **p).collect::<Vec<_>>().join(", ");
if let Ok(val) = HeaderValue::from_str(&value) {
headers.insert("preference-applied", val);
}
}
pub(crate) fn set_request_id(request_headers: &HeaderMap, response_headers: &mut HeaderMap) {
let request_id = request_headers
.get("x-request-id")
.and_then(|v| v.to_str().ok())
.map_or_else(|| uuid::Uuid::new_v4().to_string(), |s| s.to_string());
if let Ok(val) = HeaderValue::from_str(&request_id) {
response_headers.insert("x-request-id", val);
}
}