requestBuilder = $requestBuilder; } /** * Sets the request wrapper. * * @param RequestWrapper $requestWrapper Wrapper used to handle sending * requests to the JSON API. */ public function setRequestWrapper(\DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Core\RequestWrapper $requestWrapper) { $this->requestWrapper = $requestWrapper; } /** * Get the RequestWrapper. * * @return RequestWrapper|null */ public function requestWrapper() { return $this->requestWrapper; } /** * Delivers a request built from the service definition. * * @param string $resource The resource type used for the request. * @param string $method The method used for the request. * @param array $options [optional] Options used to build out the request. * @param array $whitelisted [optional] * @return array */ public function send($resource, $method, array $options = [], $whitelisted = false) { $requestOptions = $this->pluckArray(['restOptions', 'retries', 'requestTimeout'], $options); try { return json_decode($this->requestWrapper->send($this->requestBuilder->build($resource, $method, $options), $requestOptions)->getBody(), true); } catch (NotFoundException $e) { if ($whitelisted) { throw $this->modifyWhitelistedError($e); } throw $e; } } }