Zendesk\API\Http::send PHP Method

send() public static method

Use the send method to call every endpoint except for oauth/tokens
public static send ( HttpClient $client, string $endPoint, array $options = [] ) : stdClass
$client HttpClient
$endPoint string E.g. "/tickets.json"
$options array Available options are listed below: array $queryParams Array of unencoded key-value pairs, e.g. ["ids" => "1,2,3,4"] array $postFields Array of unencoded key-value pairs, e.g. ["filename" => "blah.png"] string $method "GET", "POST", etc. Default is GET. string $contentType Default is "application/json"
return stdClass | null The response body, parsed from JSON into an object. Also returns null if something went wrong
    public static function send(HttpClient $client, $endPoint, $options = [])
    {
        $options = array_merge(['method' => 'GET', 'contentType' => 'application/json', 'postFields' => null, 'queryParams' => null], $options);
        $headers = array_merge(['Accept' => 'application/json', 'Content-Type' => $options['contentType'], 'User-Agent' => $client->getUserAgent()], $client->getHeaders());
        $request = new Request($options['method'], $client->getApiUrl() . $client->getApiBasePath() . $endPoint, $headers);
        $requestOptions = [];
        if (!empty($options['multipart'])) {
            $request = $request->withoutHeader('Content-Type');
            $requestOptions['multipart'] = $options['multipart'];
        } elseif (!empty($options['postFields'])) {
            $request = $request->withBody(\GuzzleHttp\Psr7\stream_for(json_encode($options['postFields'])));
        } elseif (!empty($options['file'])) {
            if (is_file($options['file'])) {
                $fileStream = new LazyOpenStream($options['file'], 'r');
                $request = $request->withBody($fileStream);
            }
        }
        if (!empty($options['queryParams'])) {
            foreach ($options['queryParams'] as $queryKey => $queryValue) {
                $uri = $request->getUri();
                $uri = $uri->withQueryValue($uri, $queryKey, $queryValue);
                $request = $request->withUri($uri, true);
            }
        }
        try {
            list($request, $requestOptions) = $client->getAuth()->prepareRequest($request, $requestOptions);
            $response = $client->guzzle->send($request, $requestOptions);
        } catch (RequestException $e) {
            $requestException = RequestException::create($e->getRequest(), $e->getResponse());
            throw new ApiResponseException($requestException);
        } finally {
            $client->setDebug($request->getHeaders(), $request->getBody()->getContents(), isset($response) ? $response->getStatusCode() : null, isset($response) ? $response->getHeaders() : null, isset($e) ? $e : null);
            $request->getBody()->rewind();
        }
        if (isset($file)) {
            fclose($file);
        }
        $client->setSideload(null);
        return json_decode($response->getBody()->getContents());
    }

Usage Example

 /**
  * Recovering suspended tickets.
  *
  * @param array $ids
  *
  * @return mixed
  * @throws MissingParametersException
  * @throws \Zendesk\API\Exceptions\ApiResponseException
  * @throws \Zendesk\API\Exceptions\RouteException
  *
  */
 public function recoverMany(array $ids)
 {
     if (!is_array($ids)) {
         throw new MissingParametersException(__METHOD__, ['ids']);
     }
     $response = Http::send($this->client, $this->getRoute(__FUNCTION__), ['method' => 'PUT', 'queryParams' => ['ids' => implode(',', $ids)]]);
     return $response;
 }
All Usage Examples Of Zendesk\API\Http::send
Http