# Make sure we're at the edge POP 
# Check that the client request is a POST
if (fastly.ff.visits_this_service == 0 && req.method == "POST") { 
  # Check there is a body present
  if (req.body) { 
    # Convert the request method to GET
    set req.method = "GET"; 
    # Reformat the JSON payload
    call json_payload_clean;
    # Serialize body parameters as querystring
    set req.url = "/v1/graphql?query="req.http.formatted-body; 
    # Unset CT, as its only needed for POST
    unset req.http.Content-Type; 
    # Unset formatted-body header, as its only needed to build URL path
    unset req.http.formatted-body; 
  } else {
    # If no body is present, then that means either 
    # the client never sent it, or it exceeded 8KiB in size.
    # In this case we cannot convert the request so we may either
    # PASS directly to origin as is, or error out.
    return(pass); 
  }
}