From 1a783cdbc21f8b731e40d836a26c9d70539bb4c8 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Sat, 7 May 2022 15:07:34 +1200 Subject: [PATCH] [Import] Fix database initialization to remove unused parameters --- CRM/Contact/Import/Form/DataSource.php | 7 ++----- CRM/Import/DataSource.php | 10 ++++++++++ CRM/Import/DataSource/CSV.php | 9 ++------- CRM/Import/DataSource/SQL.php | 9 ++------- tests/phpunit/CRM/Contact/Import/Form/MapFieldTest.php | 2 +- 5 files changed, 17 insertions(+), 20 deletions(-) diff --git a/CRM/Contact/Import/Form/DataSource.php b/CRM/Contact/Import/Form/DataSource.php index 12e27b0a72..c03b1cfb86 100644 --- a/CRM/Contact/Import/Form/DataSource.php +++ b/CRM/Contact/Import/Form/DataSource.php @@ -232,14 +232,11 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Import_Forms { * * This gives the datasource a chance to do any table creation etc. * + * @throws \API_Exception * @throws \CRM_Core_Exception */ private function instantiateDataSource(): void { - $dataSource = $this->getDataSourceObject(); - // Get the PEAR::DB object - $dao = new CRM_Core_DAO(); - $db = $dao->getDatabaseConnection(); - $dataSource->postProcess($this->_params, $db, $this); + $this->getDataSourceObject()->initialize(); } /** diff --git a/CRM/Import/DataSource.php b/CRM/Import/DataSource.php index 311711e37d..9d6487e18f 100644 --- a/CRM/Import/DataSource.php +++ b/CRM/Import/DataSource.php @@ -347,6 +347,16 @@ abstract class CRM_Import_DataSource { */ abstract public function buildQuickForm(&$form); + /** + * Initialize the datasource, based on the submitted values stored in the user job. + * + * @throws \API_Exception + * @throws \CRM_Core_Exception + */ + public function initialize(): void { + + } + /** * Determine if the current user has access to this data source. * diff --git a/CRM/Import/DataSource/CSV.php b/CRM/Import/DataSource/CSV.php index 8ea4f0cda9..79e68a0d7f 100644 --- a/CRM/Import/DataSource/CSV.php +++ b/CRM/Import/DataSource/CSV.php @@ -68,17 +68,12 @@ class CRM_Import_DataSource_CSV extends CRM_Import_DataSource { } /** - * Process the form submission. - * - * @param array $params - * @param string $db - * @param \CRM_Core_Form $form + * Initialize the datasource, based on the submitted values stored in the user job. * * @throws \API_Exception * @throws \CRM_Core_Exception - * @throws \API_Exception */ - public function postProcess(&$params, &$db, &$form) { + public function initialize(): void { $result = self::_CsvToTable( $this->getSubmittedValue('uploadFile')['name'], $this->getSubmittedValue('skipColumnHeader'), diff --git a/CRM/Import/DataSource/SQL.php b/CRM/Import/DataSource/SQL.php index 7cee46dfba..cfd3c6f727 100644 --- a/CRM/Import/DataSource/SQL.php +++ b/CRM/Import/DataSource/SQL.php @@ -74,17 +74,12 @@ class CRM_Import_DataSource_SQL extends CRM_Import_DataSource { } /** - * Process the form submission. - * - * @param array $params - * @param string $db - * @param \CRM_Core_Form $form + * Initialize the datasource, based on the submitted values stored in the user job. * * @throws \API_Exception * @throws \CRM_Core_Exception - * @throws \Civi\API\Exception\UnauthorizedException */ - public function postProcess(&$params, &$db, &$form) { + public function initialize(): void { $table = CRM_Utils_SQL_TempTable::build()->setDurable(); $tableName = $table->getName(); $table->createWithQuery($this->getSubmittedValue('sqlQuery')); diff --git a/tests/phpunit/CRM/Contact/Import/Form/MapFieldTest.php b/tests/phpunit/CRM/Contact/Import/Form/MapFieldTest.php index 17de12fa87..4f54fb5b78 100644 --- a/tests/phpunit/CRM/Contact/Import/Form/MapFieldTest.php +++ b/tests/phpunit/CRM/Contact/Import/Form/MapFieldTest.php @@ -163,7 +163,7 @@ class CRM_Contact_Import_Form_MapFieldTest extends CiviUnitTestCase { /* @var CRM_Contact_Import_Form_MapField $form */ $form = $this->getFormObject('CRM_Contact_Import_Form_MapField', $submittedValues); $form->set('user_job_id', $userJobID); - $dataSource->postProcess($submittedValues, $null, $form); + $dataSource->initialize(); $contactFields = CRM_Contact_BAO_Contact::importableFields(); $fields = []; -- 2.25.1