Seditio Source
Root |
./othercms/dle15_0/upload/engine/classes/composer/vendor/aws/aws-sdk-php/src/Api/Parser/MetadataParserTrait.php
<?php
namespace Aws\Api\Parser;

use
Aws\Api\DateTimeResult;
use
Aws\Api\Shape;
use
Psr\Http\Message\ResponseInterface;

trait
MetadataParserTrait
{
   
/**
     * Extract a single header from the response into the result.
     */
   
protected function extractHeader(
       
$name,
       
Shape $shape,
       
ResponseInterface $response,
        &
$result
   
) {
       
$value = $response->getHeaderLine($shape['locationName'] ?: $name);

        switch (
$shape->getType()) {
            case
'float':
            case
'double':
               
$value = (float) $value;
                break;
            case
'long':
               
$value = (int) $value;
                break;
            case
'boolean':
               
$value = filter_var($value, FILTER_VALIDATE_BOOLEAN);
                break;
            case
'blob':
               
$value = base64_decode($value);
                break;
            case
'timestamp':
                try {
                   
$value = DateTimeResult::fromTimestamp(
                       
$value,
                        !empty(
$shape['timestampFormat']) ? $shape['timestampFormat'] : null
                   
);
                    break;
                } catch (\
Exception $e) {
                   
// If the value cannot be parsed, then do not add it to the
                    // output structure.
                   
return;
                }
            case
'string':
                if (
$shape['jsonvalue']) {
                   
$value = $this->parseJson(base64_decode($value), $response);
                }
                break;
        }

       
$result[$name] = $value;
    }

   
/**
     * Extract a map of headers with an optional prefix from the response.
     */
   
protected function extractHeaders(
       
$name,
       
Shape $shape,
       
ResponseInterface $response,
        &
$result
   
) {
       
// Check if the headers are prefixed by a location name
       
$result[$name] = [];
       
$prefix = $shape['locationName'];
       
$prefixLen = strlen($prefix);

        foreach (
$response->getHeaders() as $k => $values) {
            if (!
$prefixLen) {
               
$result[$name][$k] = implode(', ', $values);
            } elseif (
stripos($k, $prefix) === 0) {
               
$result[$name][substr($k, $prefixLen)] = implode(', ', $values);
            }
        }
    }

   
/**
     * Places the status code of the response into the result array.
     */
   
protected function extractStatus(
       
$name,
       
ResponseInterface $response,
        array &
$result
   
) {
       
$result[$name] = (int) $response->getStatusCode();
    }
}