Open Journal Systems  3.3.0
Response/HeaderVisitor.php
1 <?php
2 
4 
8 
13 {
14  public function visit(
15  CommandInterface $command,
16  Response $response,
17  Parameter $param,
18  &$value,
19  $context = null
20  ) {
21  if ($param->getType() == 'object' && $param->getAdditionalProperties() instanceof Parameter) {
22  $this->processPrefixedHeaders($response, $param, $value);
23  } else {
24  $value[$param->getName()] = $param->filter((string) $response->getHeader($param->getWireName()));
25  }
26  }
27 
35  protected function processPrefixedHeaders(Response $response, Parameter $param, &$value)
36  {
37  // Grab prefixed headers that should be placed into an array with the prefix stripped
38  if ($prefix = $param->getSentAs()) {
39  $container = $param->getName();
40  $len = strlen($prefix);
41  // Find all matching headers and place them into the containing element
42  foreach ($response->getHeaders()->toArray() as $key => $header) {
43  if (stripos($key, $prefix) === 0) {
44  // Account for multi-value headers
45  $value[$container][substr($key, $len)] = count($header) == 1 ? end($header) : $header;
46  }
47  }
48  }
49  }
50 }
Guzzle\Service\Command\LocationVisitor\Response
Definition: AbstractResponseVisitor.php:3
Guzzle\Service\Description\Parameter\filter
filter($value)
Definition: Parameter.php:201
Guzzle\Service\Description\Parameter
Definition: Parameter.php:10
Guzzle\Http\Message\Response
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php:17
Guzzle\Service\Command\LocationVisitor\Response\HeaderVisitor
Definition: Response/HeaderVisitor.php:12
Guzzle\Service\Command\CommandInterface
Definition: CommandInterface.php:17
Guzzle\Service\Description\Parameter\getWireName
getWireName()
Definition: Parameter.php:250
Guzzle\Service\Description\Parameter\getName
getName()
Definition: Parameter.php:240
Guzzle\Service\Command\LocationVisitor\Response\HeaderVisitor\processPrefixedHeaders
processPrefixedHeaders(Response $response, Parameter $param, &$value)
Definition: Response/HeaderVisitor.php:35
Guzzle\Service\Description\Parameter\getAdditionalProperties
getAdditionalProperties()
Definition: Parameter.php:775
Guzzle\Service\Description\Parameter\getType
getType()
Definition: Parameter.php:274
Guzzle\Service\Command\LocationVisitor\Response\HeaderVisitor\visit
visit(CommandInterface $command, Response $response, Parameter $param, &$value, $context=null)
Definition: Response/HeaderVisitor.php:14
Guzzle\Service\Command\LocationVisitor\Response\AbstractResponseVisitor
Definition: AbstractResponseVisitor.php:13
Guzzle\Service\Description\Parameter\getSentAs
getSentAs()
Definition: Parameter.php:539