public function __construct($loggerClass, \FACTFinder\Core\ConfigurationInterface $configuration, \FACTFinder\Core\Server\Request $request, \FACTFinder\Core\Client\UrlBuilder $urlBuilder, \FACTFinder\Core\AbstractEncodingConverter $encodingConverter = null) { parent::__construct($loggerClass, $configuration, $request, $urlBuilder, $encodingConverter); $this->log = $loggerClass::getLogger(__CLASS__); $this->request->setAction('Search.ff'); $this->parameters['format'] = 'json'; $this->useJsonResponseContentProcessor(); }
private function createCampaigns() { $campaigns = array(); if ($this->isLandingPageCampaign && !isset($this->parameters['pageId'])) { $this->log->warn('Page campaigns cannot be loaded without a page ID. ' . 'Use setPageId() first.'); } else { if (!$this->isLandingPageCampaign && !isset($this->parameters['productNumber'])) { $this->log->warn('Product campaigns cannot be loaded without a product ID. ' . 'Use setProductIDs() or addProductIDs() first.'); } else { if ($this->isShoppingCartCampaign || $this->isLandingPageCampaign) { $jsonData = $this->getResponseContent(); } else { // Use only the first product ID $productIDs = $this->parameters['productNumber']; if (is_array($productIDs) && !empty($productIDs)) { $this->parameters['productNumber'] = $productIDs[0]; } $jsonData = $this->getResponseContent(); // Restore IDs $this->parameters['productNumber'] = $productIDs; } if (parent::isValidResponse($jsonData)) { foreach ($jsonData as $campaignData) { $campaign = $this->createEmptyCampaignObject($campaignData); $this->fillCampaignWithFeedback($campaign, $campaignData); $this->fillCampaignWithPushedProducts($campaign, $campaignData); $campaigns[] = $campaign; } } } } $campaignIterator = FF::getInstance('Data\\CampaignIterator', $campaigns); return $campaignIterator; }