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

const PREFLIGHT_BACKEND: &str = "origin_0";
const MAIN_BACKEND: &str = "origin_1";

#[fastly::main]
fn main(mut req: Request) -> Result<Response, Error> {
    // Send a preflight request first
    let preflight_resp = Request::get(
        "https://httpbin.org/response-headers?Flags=group-A,new-header,search-enabled",
    )
    .send(PREFLIGHT_BACKEND)?;

    // Now send the original req to content backend
    // Add flags header if received in previous response
    if let Some(flags) = preflight_resp.get_header("flags") {
        req.set_header("flags", flags);
    }
    let beresp = req.send(MAIN_BACKEND)?;

    Ok(beresp)
}