/** * @param RequestInterface $request * @return GuzzleRequest * @throws ApplicationException * @throws UserException */ protected function getGuzzleRequest(RequestInterface $request) { if (!$request instanceof RestRequest) { throw new ApplicationException("RestClient requires a RestRequest!"); } switch ($request->getMethod()) { case 'GET': $method = $request->getMethod(); $endpoint = Utils::buildUrl($request->getEndpoint(), $request->getParams()); $options = []; break; case 'POST': $method = $request->getMethod(); $endpoint = $request->getEndpoint(); $options = ['json' => $request->getParams()]; break; case 'FORM': $method = 'POST'; $endpoint = $request->getEndpoint(); $options = ['body' => $request->getParams()]; break; default: throw new UserException("Unknown request method '" . $request->getMethod() . "' for '" . $request->getEndpoint() . "'"); break; } if (!empty($request->getHeaders())) { $options['headers'] = $request->getHeaders(); } return $this->client->createRequest($method, $endpoint, $options); }