From c3d9847d50e660be8182722fca9337caaf8f768a Mon Sep 17 00:00:00 2001 From: colemanw Date: Mon, 30 Oct 2023 18:05:34 -0400 Subject: [PATCH] APIv4 - Add getLinks action to CustomValue API --- Civi/Api4/CustomValue.php | 10 ++++++++++ tests/phpunit/api/v4/Custom/CustomValueTest.php | 10 ++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Civi/Api4/CustomValue.php b/Civi/Api4/CustomValue.php index 1b99edc821..ca00583c9f 100644 --- a/Civi/Api4/CustomValue.php +++ b/Civi/Api4/CustomValue.php @@ -59,6 +59,16 @@ class CustomValue { ->setCheckPermissions($checkPermissions); } + /** + * @param string $customGroup + * @param bool $checkPermissions + * @return \Civi\Api4\Action\GetLinks + */ + public static function getLinks($customGroup = NULL, $checkPermissions = TRUE) { + return (new \Civi\Api4\Action\GetLinks("Custom_$customGroup", __FUNCTION__)) + ->setCheckPermissions($checkPermissions); + } + /** * @param string $customGroup * @param bool $checkPermissions diff --git a/tests/phpunit/api/v4/Custom/CustomValueTest.php b/tests/phpunit/api/v4/Custom/CustomValueTest.php index d2ec8bde91..84352d1026 100644 --- a/tests/phpunit/api/v4/Custom/CustomValueTest.php +++ b/tests/phpunit/api/v4/Custom/CustomValueTest.php @@ -289,11 +289,11 @@ class CustomValueTest extends CustomTestBase { $this->assertNotContains("Custom_$groupName", Entity::get()->execute()->column('name')); - CustomGroup::create(FALSE) + $customGroup = CustomGroup::create(FALSE) ->addValue('title', $groupName) ->addValue('extends', 'Contact') ->addValue('is_multiple', FALSE) - ->execute(); + ->execute()->single(); $this->assertNotContains("Custom_$groupName", Entity::get()->execute()->column('name')); @@ -303,6 +303,12 @@ class CustomValueTest extends CustomTestBase { ->execute(); $this->assertContains("Custom_$groupName", Entity::get()->execute()->column('name')); + $links = CustomValue::getLinks($groupName, FALSE) + ->addValue('id', 3) + ->execute()->indexBy('ui_action'); + $this->assertStringContainsString('gid=' . $customGroup['id'], $links['view']['path']); + $this->assertStringContainsString('recId=3', $links['view']['path']); + CustomGroup::update(FALSE) ->addWhere('name', '=', $groupName) ->addValue('is_multiple', FALSE) -- 2.25.1