use fastly::http::header;
use fastly::{Error, Request, Response};

const BACKEND_NAME: &str = "origin_0";

#[fastly::main]
fn main(mut req: Request) -> Result<Response, Error> {
    // Remove a header from inbound requests.  Perhaps your origin server
    // is gzipping responses and you want to stop it doing that
    req.remove_header(header::ACCEPT_ENCODING);

    // Add a header to an inbound request before passing it to origin
    // Maybe to allow origin servers to validate that requests came from
    // the CDN?
    req.set_header("cdn-secret", "9yfncb340-6abf5oa-ejni22jkdg");

    let mut beresp = req.send(BACKEND_NAME)?;

    // Add headers to the response back to the browser
    beresp.set_header(header::CACHE_CONTROL, "max-age=60");
    beresp.set_header(header::CONTENT_SECURITY_POLICY, "default-src 'self'");

    // Remove headers from the response before sending it back to the browser
    beresp.remove_header("x-amz-request-id");
    beresp.remove_header(header::SERVER);

    Ok(beresp)
}