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); } } } }