/** * @param array $requestData * @param array $filterParams * @return array * @throws \Exception */ public function export(array $requestData, array $filterParams) { $serviceHelpers = $this->buildServiceHelpers($requestData); $requestData['filter'] = $this->prepareFilter($serviceHelpers->getProfile()->getType(), $filterParams); $this->initializeDataIO($serviceHelpers->getDataIO(), $requestData); $dataTransformerChain = $this->createDataTransformerChain($serviceHelpers->getProfile(), $serviceHelpers->getFileWriter()->hasTreeStructure()); $dataWorkflow = new DataWorkflow($serviceHelpers->getDataIO(), $serviceHelpers->getProfile(), $dataTransformerChain, $serviceHelpers->getFileWriter()); $session = $serviceHelpers->getSession()->getEntity(); try { $resultData = $dataWorkflow->export($requestData); $message = sprintf('%s %s %s', $resultData['position'], SnippetsHelper::getNamespace('backend/swag_import_export/default_profiles')->get('type/' . $serviceHelpers->getProfile()->getType()), SnippetsHelper::getNamespace('backend/swag_import_export/log')->get('export/success')); $this->logProcessing('false', $resultData['fileName'], $serviceHelpers->getProfile()->getName(), $message, 'true', $session); unset($resultData['filter']); return $resultData; } catch (\Exception $e) { $this->logProcessing('true', $requestData['fileName'], $serviceHelpers->getProfile()->getName(), $e->getMessage(), 'false', $session); throw $e; } }
/** * @param array $unprocessedData * @param string $profileName * @param string $outputFile */ protected function afterImport(array $unprocessedData, $profileName, $outputFile) { //loads hidden profile for article $profile = $this->profileFactory->loadHiddenProfile($profileName); $fileWriter = $this->fileIOFactory->createFileWriter('csv'); $dataTransformerChain = $this->dataTransformerFactory->createDataTransformerChain($profile, ['isTree' => $fileWriter->hasTreeStructure()]); $dataWorkflow = new DataWorkflow(null, $profile, $dataTransformerChain, $fileWriter); $dataWorkflow->saveUnprocessedData($unprocessedData, $profileName, $outputFile); }
/** * Saves unprocessed data to csv file * * @param array $data * @param string $profileName * @param string $outputFile */ protected function afterImport($data, $profileName, $outputFile) { /** @var FileIOFactory $fileFactory */ $fileFactory = $this->Plugin()->getFileIOFactory(); //loads hidden profile for article /** @var Profile $profile */ $profile = $this->Plugin()->getProfileFactory()->loadHiddenProfile($profileName); $fileWriter = $fileFactory->createFileWriter('csv'); /** @var DataTransformerChain $dataTransformerChain */ $dataTransformerChain = $this->Plugin()->getDataTransformerFactory()->createDataTransformerChain($profile, array('isTree' => $fileWriter->hasTreeStructure())); $dataWorkflow = new DataWorkflow(null, $profile, $dataTransformerChain, $fileWriter); $dataWorkflow->saveUnprocessedData($data, $profileName, $outputFile); }