/** * Populates a value into an array-like structure. * * @param Parameter $param The schema that defines how the JSON field is being populated * @param mixed $userValue The user value that is populating a JSON field * * @return array|mixed */ private function stockArrayJson(Parameter $param, array $userValue) : array { $elems = []; foreach ($userValue as $item) { $elems = $this->stockJson($param->getItemSchema(), $item, $elems); } return $elems; }
private static function parseHeader(Parameter $param, $name, $value) { if ($name == 'metadata' || $name == 'removeMetadata') { $headers = []; foreach ($value as $key => $keyVal) { $schema = $param->getItemSchema() ?: new Parameter(['prefix' => $param->getPrefix(), 'name' => $key]); $headers += self::parseHeader($schema, $key, $keyVal); } return $headers; } return is_string($value) || is_numeric($value) ? [$param->getPrefix() . $param->getName() => $value] : []; }
public function test_it_indicates_its_item_schema() { $data = $this->api->postServer()['params']['networks'] + ['name' => 'networks']; $param = new Parameter($data); $this->assertInstanceOf(self::PARAMETER_CLASS, $param->getItemSchema()); }