From 9ab8414291460b1683c019dd962077daaa38e9f1 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 17 Aug 2022 14:29:17 -0400 Subject: [PATCH] Import API - remove unused actions, use trait for create/save/update actions --- ext/civiimport/Civi/Api4/Import.php | 30 ++---------------- ext/civiimport/Civi/Api4/Import/Create.php | 21 +++++++++++++ .../Civi/Api4/Import/ImportSaveTrait.php | 31 +++++++++++++++++++ ext/civiimport/Civi/Api4/Import/Save.php | 15 +-------- ext/civiimport/Civi/Api4/Import/Update.php | 16 +--------- .../Spec/Provider/ImportSpecProvider.php | 10 ------ ext/civiimport/Civi/BAO/Import.php | 7 ++--- 7 files changed, 60 insertions(+), 70 deletions(-) create mode 100644 ext/civiimport/Civi/Api4/Import/Create.php create mode 100644 ext/civiimport/Civi/Api4/Import/ImportSaveTrait.php diff --git a/ext/civiimport/Civi/Api4/Import.php b/ext/civiimport/Civi/Api4/Import.php index 55c3c3a330..c44a68a921 100644 --- a/ext/civiimport/Civi/Api4/Import.php +++ b/ext/civiimport/Civi/Api4/Import.php @@ -10,13 +10,11 @@ */ namespace Civi\Api4; -use Civi\Api4\Generic\BasicReplaceAction; use Civi\Api4\Generic\CheckAccessAction; -use Civi\Api4\Generic\DAOCreateAction; -use Civi\Api4\Generic\DAODeleteAction; use Civi\Api4\Generic\DAOGetAction; use Civi\Api4\Generic\DAOGetFieldsAction; use Civi\Api4\Action\GetActions; +use Civi\Api4\Import\Create; use Civi\Api4\Import\Save; use Civi\Api4\Import\Update; @@ -68,8 +66,8 @@ class Import { * @return \Civi\Api4\Generic\DAOCreateAction * @throws \API_Exception */ - public static function create(int $userJobID, bool $checkPermissions = TRUE): DAOCreateAction { - return (new DAOCreateAction('Import_' . $userJobID, __FUNCTION__)) + public static function create(int $userJobID, bool $checkPermissions = TRUE): Create { + return (new Create('Import_' . $userJobID, __FUNCTION__)) ->setCheckPermissions($checkPermissions); } @@ -84,28 +82,6 @@ class Import { ->setCheckPermissions($checkPermissions); } - /** - * @param int $userJobID - * @param bool $checkPermissions - * @return \Civi\Api4\Generic\DAODeleteAction - * @throws \API_Exception - */ - public static function delete(int $userJobID, bool $checkPermissions = TRUE): DAODeleteAction { - return (new DAODeleteAction('Import_' . $userJobID, __FUNCTION__)) - ->setCheckPermissions($checkPermissions); - } - - /** - * @param int $userJobID - * @param bool $checkPermissions - * @return \Civi\Api4\Generic\BasicReplaceAction - * @throws \API_Exception - */ - public static function replace(int $userJobID, bool $checkPermissions = TRUE): BasicReplaceAction { - return (new BasicReplaceAction('Import_' . $userJobID, __FUNCTION__)) - ->setCheckPermissions($checkPermissions); - } - /** * @param int $userJobID * @param bool $checkPermissions diff --git a/ext/civiimport/Civi/Api4/Import/Create.php b/ext/civiimport/Civi/Api4/Import/Create.php new file mode 100644 index 0000000000..af9a4f1253 --- /dev/null +++ b/ext/civiimport/Civi/Api4/Import/Create.php @@ -0,0 +1,21 @@ +_entityName); + foreach ($items as &$item) { + $item['_user_job_id'] = (int) $userJobID; + } + return parent::write($items); + } + +} diff --git a/ext/civiimport/Civi/Api4/Import/Save.php b/ext/civiimport/Civi/Api4/Import/Save.php index e77519f9b7..292dfeb525 100644 --- a/ext/civiimport/Civi/Api4/Import/Save.php +++ b/ext/civiimport/Civi/Api4/Import/Save.php @@ -13,22 +13,9 @@ namespace Civi\Api4\Import; use Civi\Api4\Generic\DAOSaveAction; -use Civi\Api4\Generic\Result; class Save extends DAOSaveAction { - /** - * Import save action. - * - * This is copied from `DAOSaveAction` to add the user_job_id to the array & to - * the reference to '_id' not 'id'. - * - * @inheritDoc - */ - public function _run(Result $result): void { - $userJobID = str_replace('Import_', '', $this->_entityName); - $this->defaults['user_job_id'] = (int) $userJobID; - parent::_run($result); - } + use ImportSaveTrait; } diff --git a/ext/civiimport/Civi/Api4/Import/Update.php b/ext/civiimport/Civi/Api4/Import/Update.php index 988e871049..1902d09c1e 100644 --- a/ext/civiimport/Civi/Api4/Import/Update.php +++ b/ext/civiimport/Civi/Api4/Import/Update.php @@ -5,20 +5,6 @@ use Civi\Api4\Generic\DAOUpdateAction; class Update extends DAOUpdateAction { - /** - * Update import table records. - * - * @param array $items - * @return array - * @throws \API_Exception - * @throws \CRM_Core_Exception - */ - protected function updateRecords(array $items): array { - $userJobID = str_replace('Import_', '', $this->_entityName); - foreach ($items as &$item) { - $item['user_job_id'] = (int) $userJobID; - } - return parent::updateRecords($items); - } + use ImportSaveTrait; } diff --git a/ext/civiimport/Civi/Api4/Service/Spec/Provider/ImportSpecProvider.php b/ext/civiimport/Civi/Api4/Service/Spec/Provider/ImportSpecProvider.php index 57861482df..61480f8d25 100644 --- a/ext/civiimport/Civi/Api4/Service/Spec/Provider/ImportSpecProvider.php +++ b/ext/civiimport/Civi/Api4/Service/Spec/Provider/ImportSpecProvider.php @@ -32,16 +32,6 @@ class ImportSpecProvider implements Generic\SpecProviderInterface { $userJobID = substr($spec->getEntity(), (strpos($spec->getEntity(), '_') + 1)); $userJob = UserJob::get(FALSE)->addWhere('id', '=', $userJobID)->addSelect('metadata', 'job_type', 'created_id')->execute()->first(); - if (in_array($action, ['create', 'update'], TRUE)) { - $field = new FieldSpec('user_job_id', $spec->getEntity(), 'String'); - $field->setTitle(ts('User Job ID')); - $field->setLabel(ts('User Job ID')); - $field->setFkEntity('UserJob'); - $field->setReadonly(TRUE); - $field->setDefaultValue($userJobID); - $spec->addFieldSpec($field); - } - $headers = $userJob['metadata']['DataSource']['column_headers'] ?? []; foreach ($columns as $column) { $isInternalField = strpos($column['name'], '_') === 0; diff --git a/ext/civiimport/Civi/BAO/Import.php b/ext/civiimport/Civi/BAO/Import.php index a2ad5c9f85..a83e69295c 100644 --- a/ext/civiimport/Civi/BAO/Import.php +++ b/ext/civiimport/Civi/BAO/Import.php @@ -70,7 +70,6 @@ class Import extends CRM_Core_DAO { continue; } $importEntities[$tables->id] = [ - 'user_job_id' => $tables->id, 'table_name' => $tableName, 'created_by' => $tables->display_name, 'created_id' => $tables->created_id ? (int) $tables->created_id : NULL, @@ -180,13 +179,13 @@ class Import extends CRM_Core_DAO { * @throws \CRM_Core_Exception */ public static function writeRecord(array $record): CRM_Core_DAO { - $op = empty($record['id']) ? 'create' : 'edit'; - $userJobID = $record['user_job_id']; + $op = empty($record['_id']) ? 'create' : 'edit'; + $userJobID = $record['_user_job_id']; $entityName = 'Import_' . $userJobID; $userJob = UserJob::get($record['check_permissions'])->addWhere('id', '=', $userJobID)->addSelect('metadata', 'job_type', 'created_id')->execute()->first(); $tableName = $userJob['metadata']['DataSource']['table_name']; - CRM_Utils_Hook::pre($op, $entityName, $record['id'] ?? NULL, $record); + CRM_Utils_Hook::pre($op, $entityName, $record['_id'] ?? NULL, $record); $fields = self::getAllFields($tableName); $instance = new self(); $instance->__table = $tableName; -- 2.25.1