protected function execute(InputInterface $input, OutputInterface $output) { $projectCode = $input->getOption('project-code'); $imageResource = new DataImageResource($this->sourceClient); $result = $imageResource->getList(1, 20, [], [], [], ['project_code' => $projectCode]); foreach ($result['items'] as $idx => $image) { $data[] = ['code' => isset($image['code']) ? $image['code'] : '', 'name' => isset($image['name']) ? $image['name'] : '', 'image_url' => isset($image['image_url']) ? $image['image_url'] : '']; } $table = new Table($output); $table->setHeaders(['code', 'name', 'url'])->setRows($data); $table->render(); }
protected function execute(InputInterface $input, OutputInterface $output) { // $output->writeln("<error>Command not implemented yet</error>"); // die(); $isVerbose = $output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE; $sourceProject = $input->getOption('source-project-code'); $targetProject = $input->getOption('target-project-code'); $fromData = new DataImageResource($this->sourceClient); $toData = new DataImageResource($this->client); $projectResource = new ProjectResource($this->client); $userResource = new UserResource($this->client); $project = $projectResource->getOneBy(['code' => $targetProject]); if (!$project) { $output->writeln("<error>Target project {$targetProject} not found</error>"); die; } $page = 0; $perPage = 10; $maxPages = 1; while ($page < $maxPages) { $dataImages = $fromData->getList(++$page, $perPage, [], [], [], ['project_code' => $sourceProject]); $maxPages = $dataImages['pages']; // if no items, return if (!count($dataImages['items']) || !$dataImages['total']) { break; } foreach ($dataImages['items'] as $key => $dataImage) { if ($isVerbose) { $no = ($page - 1) * $perPage + $key + 1; $output->writeln("{$no} - Reading member #{$dataImage['id']}"); } $this->processDataFields($dataImage, $project); try { $res = $toData->save($dataImage); if ($isVerbose) { $output->writeln("New member #{$res['id']} saved"); } } catch (\Exception $e) { $output->writeln("<error>Problem saving data: {$e->getMessage()} </error>"); var_dump($dataImage); } } } }
protected function execute(InputInterface $input, OutputInterface $output) { // $output->writeln("<error>Command not implemented yet</error>"); // die(); $isVerbose = $output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE; $sourceProject = $input->getOption('source-project-code'); $urlOnly = $input->getOption('url-only'); $fromData = new DataImageResource($this->sourceClient); $projectResource = new ProjectResource($this->client); $userResource = new UserResource($this->client); if (!($outFile = $input->getOption('filename'))) { $outFile = $sourceProject . ($urlOnly ? '_urls.txt' : "_data.csv"); } $fp = fopen($outFile, 'w'); $page = 0; $perPage = 50; $maxPages = 1; while ($page < $maxPages) { $dataImages = $fromData->getList(++$page, $perPage, [], [], [], ['project_code' => $sourceProject]); $maxPages = $dataImages['pages']; // if no items, return if (!count($dataImages['items']) || !$dataImages['total']) { break; } foreach ($dataImages['items'] as $key => $dataImage) { $no = ($page - 1) * $perPage + $key + 1; if ($isVerbose) { $output->writeln("{$no} - Reading data #{$dataImage['id']}"); } if (!$urlOnly and $no == 1) { fputcsv($fp, array_keys($dataImage)); } // $this->processDataFields($dataImage); fputcsv($fp, $urlOnly ? [$dataImage['image_url']] : array_values($dataImage)); } if ($no == $input->getOption('limit')) { break; } } fclose($fp); $output->writeln(sprintf("{$outFile} written with %d %s", $no, $urlOnly ? 'urls' : 'records')); }
<?php require __DIR__ . '/../vendor/autoload.php'; use Survos\Client\SurvosClient; use Survos\Client\Resource\DataImageResource; use Survos\Client\SurvosCriteria; $config = json_decode(file_get_contents(__DIR__ . '/config.json'), true); $client = new SurvosClient($config['endpoint']); if (!$client->authorize($config['username'], $config['password'])) { throw new \Exception('Wrong credentials!'); } /** * get list of images created after 2015-06-25 22:40:54 * and with field 'time' matching 'afternoon' */ $resource = new DataImageResource($client); $filter = ['created_at' => '2015-06-25 22:40:54']; //OR 2015-09-16 $comparison = ['created_at' => SurvosCriteria::GREATER_THAN]; $jsonSearch = ['json_key' => 'time', 'json_value' => 'afternoon', 'json_cmp' => '=']; $data = $resource->getList(1, 100, $filter, $comparison, null, $jsonSearch); $items = $data['items'];