events/Classes/Service/DestinationDataImportService/UrlFactory.php

52 lines
1.5 KiB
PHP

<?php
namespace Wrm\Events\Service\DestinationDataImportService;
use TYPO3\CMS\Core\Http\Uri;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManager;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
use Wrm\Events\Domain\DestinationData\Import;
/**
* Factory to create URLs used during import of Destination Data.
*/
class UrlFactory
{
/**
* @var array
*/
private $settings = [];
public function __construct(
ConfigurationManager $configurationManager
) {
$this->settings = $configurationManager->getConfiguration(
ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS,
'Events',
'Pi1'
)['destinationData'] ?? [];
}
/**
* URL used to fetch initial set of data.
*/
public function createSearchResultUrl(
Import $import
): string {
$parameter = [
'experience' => $import->getRestExperience(),
'licensekey' => $this->settings['license'] ?? '',
'type' => $this->settings['restType'] ?? '',
'mode' => $this->settings['restMode'] ?? '',
'limit' => $this->settings['restLimit'] ?? '',
'template' => $this->settings['restTemplate'] ?? '',
'q' => $import->getSearchQuery()
];
$parameter = array_filter($parameter);
$url = new Uri($this->settings['restUrl']);
$url = $url->withQuery(http_build_query($parameter));
return (string) $url;
}
}