作者:danac
项目:githubartaxservic
/**
* Determine whether the response should be cached. Override this method to have a
* per-operation decision, otherwise the function from the API class will be used.
*
* @return \GithubService\Model\GistStarred
*/
public function shouldResponseBeCached(\Amp\Artax\Response $response)
{
return $this->api->shouldResponseBeCached($response);
}
作者:danac
项目:githubartaxservic
/**
* @param Request $request
* @param \ArtaxServiceBuilder\Operation $operation
* @param callable $callback
* @return Promise|void
*/
public function executeAsync(Request $request, \ArtaxServiceBuilder\Operation $operation, callable $callback)
{
$rateLimitException = $this->checkRateLimitException();
if ($rateLimitException) {
$callback($rateLimitException, null, null);
}
//We need to wrap the original callback to be able to get the rate limit info
$extractRateLimitCallable = function (\Exception $e = null, $processedData, Response $response = null) use($callback, $operation) {
$originalResponse = $operation->getOriginalResponse();
if ($originalResponse) {
$this->parseRateLimit($originalResponse);
}
//Call the original callback
$callback($e, $processedData, $response);
};
parent::executeAsync($request, $operation, $extractRateLimitCallable);
}