public function send(Request $request) { $functionUrl = $request->getBaseUrl() . '/' . $request->getFunction(); if (count($request->getUrlParams()) > 0) { $finalUrl = $functionUrl . '?' . http_build_query($request->getUrlParams()); } else { $finalUrl = $functionUrl; } $ch = curl_init($finalUrl); $headerArray = []; foreach ($request->getHeaders() as $key => $value) { $headerArray[] = ucfirst($key) . ': ' . $value; } curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $method = strtoupper($request->getMethod()); switch ($method) { case "GET": break; case "POST": curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getParams()); break; case "DELETE": curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); break; case "PUT": curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($request->getParams())); break; } return json_decode(curl_exec($ch)); }
public function sign(Request $request) { $currentHeaders = $request->getHeaders(); $signatureHeader = $this->getV1SignatureHeader($this->credentials->getPublicId(), base64_decode($this->credentials->getSecret())); $currentHeaders['x-signature'] = $signatureHeader; return new ApiRequest($request->getBaseUrl(), $request->getFunction(), $request->getUrlParams(), $request->getMethod(), $request->getParams(), $currentHeaders); }