private function prepareRequestOptions(Request $request)
{
// options for this entire curl object
$options = $this->getOptions();
// set the request URL
$options[CURLOPT_URL] = $request->getUrl();
// set the request method
$options[CURLOPT_CUSTOMREQUEST] = $request->getMethod();
// posting data w/ this request?
if ($request->getPostData()) {
$options[CURLOPT_POST] = 1;
$options[CURLOPT_POSTFIELDS] = $request->getPostData();
}
// if the request has headers, use those, or if there are global headers, use those
if ($request->getHeaders()) {
$options[CURLOPT_HEADER] = 0;
$options[CURLOPT_HTTPHEADER] = $request->getHeaders();
} elseif ($this->getHeaders()) {
$options[CURLOPT_HEADER] = 0;
$options[CURLOPT_HTTPHEADER] = $this->getHeaders();
}
// if the request has options set, use those and have them take precedence
if ($request->getOptions()) {
$options = $request->getOptions() + $options;
}
return $options;
}