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();
 }
Exemple #2
0
 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());
 }