public static function serializeOptions(Operation $operation, array $userValues = []) { $options = ['headers' => []]; $jsonSerializer = new JsonSerializer(); foreach ($userValues as $paramName => $paramValue) { if (null === ($schema = $operation->getParam($paramName))) { continue; } switch ($schema->getLocation()) { case 'query': $options['query'][$schema->getName()] = $paramValue; break; case 'header': $options['headers'] += self::parseHeader($schema, $paramName, $paramValue); break; case 'json': $json = isset($options['json']) ? $options['json'] : []; $options['json'] = $jsonSerializer->stockJson($schema, $paramValue, $json); break; case 'raw': $options['body'] = $paramValue; break; } } if (!empty($options['json']) && ($key = $operation->getJsonKey())) { $options['json'] = [$key => $options['json']]; } return $options; }
public function serializeOptions(Operation $operation, array $userValues = []) : array { $options = ['headers' => []]; foreach ($userValues as $paramName => $paramValue) { if (null === ($schema = $operation->getParam($paramName))) { continue; } $this->callStockingMethod($schema, $paramValue, $options); } if (!empty($options['json'])) { if ($key = $operation->getJsonKey()) { $options['json'] = [$key => $options['json']]; } if (strpos(json_encode($options['json']), '\\/') !== false) { $options['body'] = json_encode($options['json'], JSON_UNESCAPED_SLASHES); $options['headers']['Content-Type'] = 'application/json'; unset($options['json']); } } return $options; }