From a9aac3bf03a73a553b96031be604de933cb14dfd Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Wed, 19 May 2021 15:21:23 -0700 Subject: [PATCH] (REF) APIv4 UpdateAction - Add skeletal 'validateValues()` method --- Civi/Api4/Generic/AbstractUpdateAction.php | 7 +++++++ Civi/Api4/Generic/BasicUpdateAction.php | 1 + Civi/Api4/Generic/DAOUpdateAction.php | 2 ++ 3 files changed, 10 insertions(+) diff --git a/Civi/Api4/Generic/AbstractUpdateAction.php b/Civi/Api4/Generic/AbstractUpdateAction.php index 91e8c3feac..0260fb2a89 100644 --- a/Civi/Api4/Generic/AbstractUpdateAction.php +++ b/Civi/Api4/Generic/AbstractUpdateAction.php @@ -70,4 +70,11 @@ abstract class AbstractUpdateAction extends AbstractBatchAction { return $this; } + /** + * @throws \API_Exception + */ + protected function validateValues() { + // Placeholder + } + } diff --git a/Civi/Api4/Generic/BasicUpdateAction.php b/Civi/Api4/Generic/BasicUpdateAction.php index a7bc7e9bb2..4fd8fe6c15 100644 --- a/Civi/Api4/Generic/BasicUpdateAction.php +++ b/Civi/Api4/Generic/BasicUpdateAction.php @@ -58,6 +58,7 @@ class BasicUpdateAction extends AbstractUpdateAction { */ public function _run(Result $result) { $this->formatWriteValues($this->values); + $this->validateValues(); foreach ($this->getBatchRecords() as $item) { $result[] = $this->writeRecord($this->values + $item); } diff --git a/Civi/Api4/Generic/DAOUpdateAction.php b/Civi/Api4/Generic/DAOUpdateAction.php index a3c86dbfe6..aef6618729 100644 --- a/Civi/Api4/Generic/DAOUpdateAction.php +++ b/Civi/Api4/Generic/DAOUpdateAction.php @@ -61,6 +61,7 @@ class DAOUpdateAction extends AbstractUpdateAction { if ($this->getSelect() === ['id'] && count($this->where) === 1 && $this->where[0][0] === 'id' && $this->where[0][1] === '=' && !empty($this->where[0][2])) { $this->values['id'] = $this->where[0][2]; $items = [$this->values]; + $this->validateValues(); $result->exchangeArray($this->writeObjects($items)); return; } @@ -71,6 +72,7 @@ class DAOUpdateAction extends AbstractUpdateAction { $item = $this->values + $item; } + $this->validateValues(); $result->exchangeArray($this->writeObjects($items)); } -- 2.25.1