1 | <?php declare(strict_types=1); |
||
11 | class RequestSerializer |
||
12 | { |
||
13 | private $jsonSerializer; |
||
14 | |||
15 | 209 | public function __construct(JsonSerializer $jsonSerializer = null) |
|
16 | { |
||
17 | 209 | $this->jsonSerializer = $jsonSerializer ?: new JsonSerializer(); |
|
18 | 209 | } |
|
19 | |||
20 | 209 | public function serializeOptions(Operation $operation, array $userValues = []): array |
|
21 | { |
||
22 | 209 | $options = ['headers' => []]; |
|
23 | |||
24 | 209 | foreach ($userValues as $paramName => $paramValue) { |
|
25 | 191 | if (null === ($schema = $operation->getParam($paramName))) { |
|
26 | 1 | continue; |
|
27 | } |
||
28 | |||
29 | 190 | $this->callStockingMethod($schema, $paramValue, $options); |
|
30 | 190 | } |
|
31 | 209 | ||
32 | if (!empty($options['json'])) { |
||
33 | 209 | if ($key = $operation->getJsonKey()) { |
|
34 | 68 | $options['json'] = [$key => $options['json']]; |
|
35 | 38 | } |
|
36 | 38 | if (strpos(json_encode($options['json']), '\/') !== false) { |
|
37 | 68 | $options['body'] = json_encode($options['json'], JSON_UNESCAPED_SLASHES); |
|
38 | 6 | $options['headers']['Content-Type'] = 'application/json'; |
|
39 | 6 | unset($options['json']); |
|
40 | 6 | } |
|
41 | 6 | } |
|
42 | 68 | ||
43 | return $options; |
||
44 | 209 | } |
|
45 | |||
46 | private function callStockingMethod(Parameter $schema, $paramValue, array &$options) |
||
58 | 18 | ||
59 | private function stockQuery(Parameter $schema, $paramValue, array &$options) |
||
60 | 18 | { |
|
63 | |||
64 | 18 | private function stockHeader(Parameter $schema, $paramValue, array &$options) |
|
74 | |||
75 | 68 | private function stockMetadataHeader(Parameter $schema, $paramValue, array &$options) |
|
82 | |||
83 | 6 | private function stockJson(Parameter $schema, $paramValue, array &$options) |
|
88 | |||
89 | private function stockRaw(Parameter $schema, $paramValue, array &$options) |
||
93 | } |
||
94 |
This check looks from parameters that have been defined for a function or method, but which are not used in the method body.