Open Journal Systems  3.3.0
AbstractRequestVisitor.php
1 <?php
2 
4 
8 
10 {
14  public function after(CommandInterface $command, RequestInterface $request) {}
15 
19  public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value) {}
20 
29  protected function prepareValue($value, Parameter $param)
30  {
31  return is_array($value)
32  ? $this->resolveRecursively($value, $param)
33  : $param->filter($value);
34  }
35 
44  protected function resolveRecursively(array $value, Parameter $param)
45  {
46  foreach ($value as $name => &$v) {
47  switch ($param->getType()) {
48  case 'object':
49  if ($subParam = $param->getProperty($name)) {
50  $key = $subParam->getWireName();
51  $value[$key] = $this->prepareValue($v, $subParam);
52  if ($name != $key) {
53  unset($value[$name]);
54  }
55  } elseif ($param->getAdditionalProperties() instanceof Parameter) {
56  $v = $this->prepareValue($v, $param->getAdditionalProperties());
57  }
58  break;
59  case 'array':
60  if ($items = $param->getItems()) {
61  $v = $this->prepareValue($v, $items);
62  }
63  break;
64  }
65  }
66 
67  return $param->filter($value);
68  }
69 }
Guzzle\Service\Description\Parameter\getItems
getItems()
Definition: Parameter.php:820
Guzzle\Service\Command\LocationVisitor\Request
Definition: AbstractRequestVisitor.php:3
Guzzle\Http\Message\RequestInterface
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestInterface.php:16
Guzzle\Service\Description\Parameter\filter
filter($value)
Definition: Parameter.php:201
Guzzle\Service\Command\LocationVisitor\Request\AbstractRequestVisitor\visit
visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
Definition: AbstractRequestVisitor.php:19
Guzzle\Service\Description\Parameter\getProperty
getProperty($name)
Definition: Parameter.php:724
Guzzle\Service\Command\LocationVisitor\Request\AbstractRequestVisitor
Definition: AbstractRequestVisitor.php:9
Guzzle\Service\Command\LocationVisitor\Request\AbstractRequestVisitor\resolveRecursively
resolveRecursively(array $value, Parameter $param)
Definition: AbstractRequestVisitor.php:44
Guzzle\Service\Description\Parameter
Definition: Parameter.php:10
Guzzle\Service\Command\LocationVisitor\Request\AbstractRequestVisitor\after
after(CommandInterface $command, RequestInterface $request)
Definition: AbstractRequestVisitor.php:14
Guzzle\Service\Command\CommandInterface
Definition: CommandInterface.php:17
Guzzle\Service\Command\LocationVisitor\Request\AbstractRequestVisitor\prepareValue
prepareValue($value, Parameter $param)
Definition: AbstractRequestVisitor.php:29
Guzzle\Service\Command\LocationVisitor\Request\RequestVisitorInterface
Definition: RequestVisitorInterface.php:12
Guzzle\Service\Description\Parameter\getAdditionalProperties
getAdditionalProperties()
Definition: Parameter.php:775
Guzzle\Service\Description\Parameter\getType
getType()
Definition: Parameter.php:274