diff options
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php b/vendor/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php new file mode 100644 index 0000000..200b89a --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Api/Serializer/RestXmlSerializer.php @@ -0,0 +1,48 @@ +<?php +namespace Aws\Api\Serializer; + +use Aws\Api\StructureShape; +use Aws\Api\Service; + +/** + * @internal + */ +class RestXmlSerializer extends RestSerializer +{ + /** @var XmlBody */ + private $xmlBody; + + /** + * @param Service $api Service API description + * @param string $endpoint Endpoint to connect to + * @param XmlBody $xmlBody Optional XML formatter to use + */ + public function __construct( + Service $api, + $endpoint, + XmlBody $xmlBody = null + ) { + parent::__construct($api, $endpoint); + $this->xmlBody = $xmlBody ?: new XmlBody($api); + } + + protected function payload(StructureShape $member, array $value, array &$opts) + { + $opts['headers']['Content-Type'] = 'application/xml'; + $opts['body'] = $this->getXmlBody($member, $value); + } + + /** + * @param StructureShape $member + * @param array $value + * @return string + */ + private function getXmlBody(StructureShape $member, array $value) + { + $xmlBody = (string)$this->xmlBody->build($member, $value); + $xmlBody = str_replace("'", "'", $xmlBody); + $xmlBody = str_replace('\r', " ", $xmlBody); + $xmlBody = str_replace('\n', " ", $xmlBody); + return $xmlBody; + } +} |