Exemplo n.º 1
0
 protected function parseException(GuzzleException $e)
 {
     $exceptionMapping = ['client' => [['statusCode' => 404, 'match' => '/ProductNotFound/i', 'exception' => '\\Dandomain\\Api\\Exception\\ProductNotFoundException'], ['statusCode' => 400, 'match' => '/ShippingMethodNotValid/i', 'exception' => '\\Dandomain\\Api\\Exception\\ShippingMethodNotValidException']]];
     if ($e instanceof ClientException) {
         /** @var ClientException $item */
         foreach ($exceptionMapping['client'] as $item) {
             if ($e->getResponse()->getStatusCode() == $item['statusCode'] && preg_match($item['match'], $e->getResponse()->getBody()->getContents())) {
                 /** @var ClientException $newE */
                 $newE = new $item['exception']($e->getMessage(), $e->getRequest(), $e->getResponse(), $e, $e->getHandlerContext());
                 return $newE;
             }
         }
     }
     return false;
 }