diff options
Diffstat (limited to 'www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Generic/AbstractBatchAction.php')
-rw-r--r-- | www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Generic/AbstractBatchAction.php | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Generic/AbstractBatchAction.php b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Generic/AbstractBatchAction.php new file mode 100644 index 00000000..91c3b461 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Generic/AbstractBatchAction.php @@ -0,0 +1,64 @@ +<?php + +namespace Civi\Api4\Generic; + +/** + * Base class for all batch actions (Update, Delete, Replace). + * + * This differs from the AbstractQuery class in that the "Where" clause is required. + * + * @package Civi\Api4\Generic + */ +abstract class AbstractBatchAction extends AbstractQueryAction { + + /** + * Criteria for selecting items to process. + * + * @required + * @var array + */ + protected $where = []; + + /** + * @var array + */ + private $select; + + /** + * QueryAction constructor. + * @param string $entityName + * @param string $actionName + * @param string|array $select + * One or more fields to load for each item. + */ + public function __construct($entityName, $actionName, $select = 'id') { + $this->select = (array) $select; + parent::__construct($entityName, $actionName); + } + + /** + * @return array + */ + protected function getBatchRecords() { + $params = [ + 'checkPermissions' => $this->checkPermissions, + 'where' => $this->where, + 'orderBy' => $this->orderBy, + 'limit' => $this->limit, + 'offset' => $this->offset, + ]; + if (empty($this->reload)) { + $params['select'] = $this->select; + } + + return (array) civicrm_api4($this->getEntityName(), 'get', $params); + } + + /** + * @return array + */ + protected function getSelect() { + return $this->select; + } + +} |