PluginProbe
Media Cloud Sync / 1.2.11
Media Cloud Sync v1.2.11
1.4.1 1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 All 35 releases
media-cloud-sync / includes / sdk / s3 / Aws / Api / Parser / JsonRpcParser.php

JsonRpcParser.php in Media Cloud Sync 1.2.11, at includes/sdk/s3/Aws/Api/Parser/JsonRpcParser.php

37 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Dudlewebs\WPMCS\s3\Aws\Api\Parser;
4
5 use Dudlewebs\WPMCS\s3\Aws\Api\StructureShape;
6 use Dudlewebs\WPMCS\s3\Aws\Api\Service;
7 use Dudlewebs\WPMCS\s3\Aws\Result;
8 use Dudlewebs\WPMCS\s3\Aws\CommandInterface;
9 use Dudlewebs\WPMCS\s3\Psr\Http\Message\ResponseInterface;
10 use Dudlewebs\WPMCS\s3\Psr\Http\Message\StreamInterface;
11 /**
12 * @internal Implements JSON-RPC parsing (e.g., DynamoDB)
13 */
14 class JsonRpcParser extends AbstractParser
15 {
16 use PayloadParserTrait;
17 /**
18 * @param Service $api Service description
19 * @param JsonParser $parser JSON body builder
20 */
21 public function __construct(Service $api, JsonParser $parser = null)
22 {
23 parent::__construct($api);
24 $this->parser = $parser ?: new JsonParser();
25 }
26 public function __invoke(CommandInterface $command, ResponseInterface $response)
27 {
28 $operation = $this->api->getOperation($command->getName());
29 $result = null === $operation['output'] ? null : $this->parseMemberFromStream($response->getBody(), $operation->getOutput(), $response);
30 return new Result($result ?: []);
31 }
32 public function parseMemberFromStream(StreamInterface $stream, StructureShape $member, $response)
33 {
34 return $this->parser->parse($member, $this->parseJson($stream, $response));
35 }
36 }
37