JsonParserTrait.php 1004 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace Aws\Api\ErrorParser;
  3. use Aws\Api\Parser\PayloadParserTrait;
  4. use Aws\Api\StructureShape;
  5. use Psr\Http\Message\ResponseInterface;
  6. /**
  7. * Provides basic JSON error parsing functionality.
  8. */
  9. trait JsonParserTrait
  10. {
  11. use PayloadParserTrait;
  12. private function genericHandler(ResponseInterface $response)
  13. {
  14. $code = (string) $response->getStatusCode();
  15. return [
  16. 'request_id' => (string) $response->getHeaderLine('x-amzn-requestid'),
  17. 'code' => null,
  18. 'message' => null,
  19. 'type' => $code[0] == '4' ? 'client' : 'server',
  20. 'parsed' => $this->parseJson($response->getBody(), $response)
  21. ];
  22. }
  23. protected function payload(
  24. ResponseInterface $response,
  25. StructureShape $member
  26. ) {
  27. $jsonBody = $this->parseJson($response->getBody(), $response);
  28. if ($jsonBody) {
  29. return $this->parser->parse($member, $jsonBody);
  30. }
  31. }
  32. }