Submit
Path:
~
/
/
proc
/
self
/
root
/
opt
/
psa
/
admin
/
plib
/
modules
/
letsencrypt
/
vendor
/
aws
/
aws-sdk-php
/
src
/
Api
/
ErrorParser
/
File Content:
AbstractErrorParser.php
<?php namespace PleskLetsEncrypt\Aws\Api\ErrorParser; use PleskLetsEncrypt\Aws\Api\Parser\MetadataParserTrait; use PleskLetsEncrypt\Aws\Api\Parser\PayloadParserTrait; use PleskLetsEncrypt\Aws\Api\Service; use PleskLetsEncrypt\Aws\Api\StructureShape; use PleskLetsEncrypt\Aws\CommandInterface; use Psr\Http\Message\ResponseInterface; abstract class AbstractErrorParser { use MetadataParserTrait; use PayloadParserTrait; /** * @var Service */ protected $api; /** * @param Service $api */ public function __construct(?Service $api = null) { $this->api = $api; } protected abstract function payload(ResponseInterface $response, StructureShape $member); protected function extractPayload(StructureShape $member, ResponseInterface $response) { if ($member instanceof StructureShape) { // Structure members parse top-level data into a specific key. return $this->payload($response, $member); } else { // Streaming data is just the stream from the response body. return $response->getBody(); } } protected function populateShape(array &$data, ResponseInterface $response, ?CommandInterface $command = null) { $data['body'] = []; if (!empty($command) && !empty($this->api)) { // If modeled error code is indicated, check for known error shape if (!empty($data['code'])) { $errors = $this->api->getOperation($command->getName())->getErrors(); foreach ($errors as $key => $error) { // If error code matches a known error shape, populate the body if ($data['code'] == $error['name'] && $error instanceof StructureShape) { $modeledError = $error; $data['body'] = $this->extractPayload($modeledError, $response); $data['error_shape'] = $modeledError; foreach ($error->getMembers() as $name => $member) { switch ($member['location']) { case 'header': $this->extractHeader($name, $member, $response, $data['body']); break; case 'headers': $this->extractHeaders($name, $member, $response, $data['body']); break; case 'statusCode': $this->extractStatus($name, $response, $data['body']); break; } } break; } } } } return $data; } }
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
AbstractErrorParser.php
2863 bytes
0644
JsonParserTrait.php
1505 bytes
0644
JsonRpcErrorParser.php
1304 bytes
0644
RestJsonErrorParser.php
1623 bytes
0644
XmlErrorParser.php
3125 bytes
0644
N4ST4R_ID | Naxtarrr