/** * @param array $criteria * @return Job[] * @throws \Keboola\StorageApi\Exception */ public function findJobs(array $criteria, $offset = 0, $limit = JobManager::PAGING) { $exportOptions = $this->buildExportOptions($criteria); $data = $this->syrupJobSearch->getJobs(array('projectId' => $this->token->getProjectId(), 'component' => KeboolaOrchestratorBundle::SYRUP_COMPONENT_NAME, 'offset' => $offset, 'limit' => $limit, 'query' => $exportOptions)); $manager = $this; return array_map(function ($line) use($manager) { $esJob = new Elasticsearch\Job($this->objectEncryptor, $line, $line['_index'], $line['_type']); $job = new Job(); $job->build($esJob); $job->setUrl($manager->generateJobUri($job)); $job->setToken($this->decryptToken($job->getToken())); return $job; }, $data); }