Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpnamespace Aws\Api\ErrorParser;use Aws\Api\Parser\JsonParser;use Aws\Api\Service;use Aws\Api\StructureShape;use Aws\CommandInterface;use Psr\Http\Message\ResponseInterface;/*** Parses JSON-REST errors.*/class RestJsonErrorParser extends AbstractErrorParser{use JsonParserTrait;private $parser;public function __construct(Service $api = null, JsonParser $parser = null){parent::__construct($api);$this->parser = $parser ?: new JsonParser();}public function __invoke(ResponseInterface $response,CommandInterface $command = null) {$data = $this->genericHandler($response);// Merge in error data from the JSON bodyif ($json = $data['parsed']) {$data = array_replace($data, $json);}// Correct error type from services like Amazon Glacierif (!empty($data['type'])) {$data['type'] = strtolower($data['type']);}// Retrieve the error code from services like Amazon Elastic Transcoderif ($code = $response->getHeaderLine('x-amzn-errortype')) {$colon = strpos($code, ':');$data['code'] = $colon ? substr($code, 0, $colon) : $code;}// Retrieve error message directly$data['message'] = isset($data['parsed']['message'])? $data['parsed']['message']: (isset($data['parsed']['Message'])? $data['parsed']['Message']: null);$this->populateShape($data, $response, $command);return $data;}}