/** * Make the API request * * @param \JotForm\Request $request * @param Boolean $useQueryAuthCredential * @return Object * @throws Exception */ public function executeRequest(\JotForm\Request $request, $useQueryAuthCredential = true) { $body = []; switch (strtolower($request->getMethod())) { case 'post': case 'put': $body['form_params'] = $request->getData(); break; default: break; } if ($useQueryAuthCredential) { $body = array_merge($this->credentials, $body); } // Check/get additional query options/parameters if ($options = $request->getQueryOptions()) { foreach ($options as $k => $v) { $body['query'][$k] = $v; } } try { $response = $this->httpClient->request($request->getMethod(), $request->getEndpoint(), $body); $body = $response->getBody(); $object = json_decode($body); return $object; } catch (\GuzzleHttp\Exception\ClientException $e) { throw new \Exception('GuzzleHttp\\Exception\\ClientException: ' . $e->getMessage()); } catch (\GuzzleHttp\Exception\RequestException $e) { throw new \Exception('GuzzleHttp\\Exception\\RequestException: ' . $e->getMessage()); } catch (\GuzzleHttp\Exception\ConnectException $e) { throw new \Exception('GuzzleHttp\\Exception\\ConnectException: ' . $e->getMessage()); } catch (\GuzzleHttp\Exception\ServerException $e) { throw new \Exception('GuzzleHttp\\Exception\\ServerException: ' . $e->getMessage()); } catch (\Exception $e) { throw new \Exception('Exception: ' . $e->getMessage()); } }