public function run(Config $config) { $client = RestClient::create(['base_url' => $this->baseUrl, 'defaults' => ['headers' => UserFunction::build($this->headers, ['attr' => $config->getAttributes()])]], JuicerRest::convertRetry($this->retryConfig)); if (!empty($this->defaultRequestOptions)) { $client->setDefaultRequestOptions($this->defaultRequestOptions); } $this->auth->authenticateClient($client); // Verbose Logging of all requests $client->getClient()->getEmitter()->attach(new LogRequest()); if ($this->cache) { CacheSubscriber::attach($client->getClient(), ['storage' => $this->cache, 'validate' => false, 'can_cache' => function (RequestInterface $requestInterface) { return true; }]); } $this->initParser($config); $builder = new Builder(); foreach ($config->getJobs() as $jobConfig) { $this->runJob($jobConfig, $client, $config, $builder); } if ($this->parser instanceof Json) { // FIXME fallback from JsonMap $this->metadata = array_replace_recursive($this->metadata, $this->parser->getMetadata()); } // return $this->parser->getResults(); }
public function testGetMetadata() { $parser = new Json(Parser::create($this->getLogger('test', true))); $data = [(object) ['id' => 1]]; $parser->process($data, 'metadataTest'); self::assertEquals(['json_parser.struct' => ['metadataTest' => ['id' => 'scalar']], 'json_parser.structVersion' => 2], $parser->getMetadata()); }