[REF] [Import] Stop passing submittedValues as parameters
authorEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 3 May 2022 02:31:35 +0000 (14:31 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Thu, 5 May 2022 19:51:31 +0000 (07:51 +1200)
These parameters are all availabe via

CRM/Contact/Import/Parser/Contact.php
tests/phpunit/CRM/Contact/Import/Form/MapFieldTest.php
tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php

index 78138d4a25560120326d8065438e6208ede5d924..75ab6ce1d71a68934bbf990e5f380c981c4f992e 100644 (file)
@@ -465,8 +465,6 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
    * @param array $values
    *   The array of values belonging to this line.
    *
-   * @param bool $doGeocodeAddress
-   *
    * @return bool
    *   the result of this processing
    *
@@ -474,9 +472,9 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
    * @throws \CRM_Core_Exception
    * @throws \API_Exception
    */
-  public function import($onDuplicate, &$values, $doGeocodeAddress = FALSE) {
+  public function import($onDuplicate, &$values) {
     $this->_unparsedStreetAddressContacts = [];
-    if (!$doGeocodeAddress) {
+    if (!$this->getSubmittedValue('doGeocodeAddress')) {
       // CRM-5854, reset the geocode method to null to prevent geocoding
       CRM_Utils_GeocodeProvider::disableForSession();
     }
@@ -2541,12 +2539,9 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
    * @param int $onDuplicate
    * @param int $statusID
    * @param int $totalRowCount
-   * @param bool $doGeocodeAddress
-   * @param int $timeout
-   * @param string $contactSubType
-   * @param int $dedupeRuleGroupID
    *
    * @return mixed
+   * @throws \API_Exception
    */
   public function run(
     $tableName,
@@ -2557,16 +2552,12 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
     $statusFieldName = '_status',
     $onDuplicate = self::DUPLICATE_SKIP,
     $statusID = NULL,
-    $totalRowCount = NULL,
-    $doGeocodeAddress = FALSE,
-    $timeout = CRM_Contact_Import_Parser_Contact::DEFAULT_TIMEOUT,
-    $contactSubType = NULL,
-    $dedupeRuleGroupID = NULL
+    $totalRowCount = NULL
   ) {
 
     // TODO: Make the timeout actually work
-    $this->_onDuplicate = $onDuplicate;
-    $this->_dedupeRuleGroupID = $dedupeRuleGroupID;
+    $this->_onDuplicate = $onDuplicate = $this->getSubmittedValue('onDuplicate');
+    $this->_dedupeRuleGroupID = $this->getSubmittedValue('dedupe_rule_id');
     // Since $this->_contactType is still being called directly do a get call
     // here to make sure it is instantiated.
     $this->getContactType();
@@ -2640,7 +2631,7 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
       }
       elseif ($mode == self::MODE_IMPORT) {
         try {
-          $returnCode = $this->import($onDuplicate, $values, $doGeocodeAddress);
+          $returnCode = $this->import($onDuplicate, $values);
         }
         catch (CiviCRM_API3_Exception $e) {
           // When we catch errors here we are not adding to the errors array - mostly
index 4e2ec24ac91a82a54e1d0a4422d607707422ebe3..6766156045eac39f771cfbbe50c031037dde8645 100644 (file)
@@ -149,6 +149,7 @@ class CRM_Contact_Import_Form_MapFieldTest extends CiviUnitTestCase {
       'contactSubType' => '',
       'dataSource' => 'CRM_Import_DataSource_SQL',
       'sqlQuery' => 'SELECT * FROM civicrm_tmp_d_import_job_xxx',
+      'dedupe_rule_id' => '',
       'onDuplicate' => CRM_Import_Parser::DUPLICATE_UPDATE,
     ], $submittedValues);
     $userJobID = UserJob::create()->setValues([
index c6229cd2ab2bdd7c917e34f683e400619f0e5630..ed5b6b18d20ecc0731226e0714fe8592d605d92e 100644 (file)
@@ -1059,6 +1059,7 @@ class CRM_Contact_Import_Parser_ContactTest extends CiviUnitTestCase {
         'submitted_values' => array_merge([
           'contactType' => CRM_Import_Parser::CONTACT_INDIVIDUAL,
           'contactSubType' => '',
+          'doGeocodeAddress' => 0,
         ], $submittedValues),
       ],
       'status_id:name' => 'draft',