events/Classes/Command/DestinationDataImportCommand.php

98 lines
2.7 KiB
PHP
Raw Normal View History

2019-08-12 07:43:37 +02:00
<?php
2019-08-12 07:43:37 +02:00
namespace Wrm\Events\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use TYPO3\CMS\Core\Core\Bootstrap;
use Wrm\Events\Domain\DestinationData\LegacyImportFactory;
2019-08-13 11:17:34 +02:00
use Wrm\Events\Service\DestinationDataImportService;
2019-08-12 07:43:37 +02:00
class DestinationDataImportCommand extends Command
{
/**
* @var DestinationDataImportService
*/
private $destinationDataImportService;
/**
* @var LegacyImportFactory
*/
private $importFactory;
public function __construct(
DestinationDataImportService $destinationDataImportService,
LegacyImportFactory $importFactory
) {
parent::__construct();
$this->destinationDataImportService = $destinationDataImportService;
$this->importFactory = $importFactory;
}
public function configure(): void
2019-08-12 07:43:37 +02:00
{
$this->setDescription('Import Destination Data Events');
$this->setHelp('Destination Data Events are imported');
$this->addArgument(
'storage-pid',
2021-12-14 16:22:29 +01:00
InputArgument::REQUIRED,
'What is the storage pid?'
2019-08-12 07:43:37 +02:00
);
$this->addArgument(
'rest-experience',
2021-12-14 16:22:29 +01:00
InputArgument::REQUIRED,
'What is the rest experience?'
2019-08-12 07:43:37 +02:00
);
$this->addArgument(
'files-folder',
2021-12-14 16:22:29 +01:00
InputArgument::REQUIRED,
'Where to save the image files?'
2019-08-12 07:43:37 +02:00
);
$this->addArgument(
'region-uid',
InputArgument::OPTIONAL,
'What is the region uid?'
);
$this->addArgument(
'query',
InputArgument::OPTIONAL,
'What is the additional query "q" parameter?'
);
2019-08-12 07:43:37 +02:00
}
protected function execute(InputInterface $input, OutputInterface $output)
{
Bootstrap::initializeBackendAuthentication();
$regionUid = $input->getArgument('region-uid');
if (is_numeric($regionUid)) {
$regionUid = (int) $regionUid;
} else {
$regionUid = null;
}
$query = $input->getArgument('query');
if (is_string($query) === false) {
$query = '';
}
$import = $this->importFactory->createFromArray([
'storage_pid' => $input->getArgument('storage-pid'),
'files_folder' => $input->getArgument('files-folder'),
'region_uid' => $regionUid,
'rest_experience' => $input->getArgument('rest-experience'),
'rest_search_query' => $query,
]);
return $this->destinationDataImportService->import(
$import
);
2019-08-12 07:43:37 +02:00
}
}