- main
- manifest
- deps
- main
- Install
- Run
use fastly::{Error, Request, Response};
#[fastly::main]
fn main(req: Request) -> Result<Response, Error> {
log_fastly::init_simple("mylogs", log::LevelFilter::Info);
let url_path = req.get_path().to_string();
let mut beresp = req.send("origin_0")?;
let mut keys = beresp.get_header_str("Surrogate-Key").unwrap_or_default().to_string();
if beresp.get_header_str("cache-control")
.map(|cache_control| !cache_control.to_lowercase().contains("immutable"))
.unwrap_or(true) {
keys += " all";
}
keys += &format!(" {}", url_path);
beresp.set_header("Surrogate-Key", keys.trim());
log::info!("Surrogate Keys: {}", keys);
Ok(beresp)
}