httpRetryCodes; $httpRetryMessages = $this->httpRetryMessages; return function (\Exception $ex) use($httpRetryCodes, $httpRetryMessages, $shouldRetryMessages) { $statusCode = $ex->getCode(); if (\in_array($statusCode, $httpRetryCodes)) { return \true; } if (!$shouldRetryMessages) { return \false; } $message = $ex instanceof RequestException && $ex->hasResponse() ? (string) $ex->getResponse()->getBody() : $ex->getMessage(); try { $message = $this->jsonDecode($message, \true); } catch (\InvalidArgumentException $ex) { return \false; } if (!isset($message['error']['errors'])) { return \false; } foreach ($message['error']['errors'] as $error) { if (\in_array($error['reason'], $httpRetryMessages)) { return \true; } } return \false; }; } /** * @param array $codes */ private function setHttpRetryCodes(array $codes) { $this->httpRetryCodes = $codes; } /** * @param array $messages */ private function setHttpRetryMessages(array $messages) { $this->httpRetryMessages = $messages; } }