From 6a118cd78b21e6fa58b112cfa5e338872e61762c Mon Sep 17 00:00:00 2001 From: colemanw Date: Wed, 23 Aug 2023 16:39:27 -0400 Subject: [PATCH] dev/core#4530 - Change email fields to text in search mode --- .../Spec/Provider/EmailGetSpecProvider.php | 45 +++++++++++++++++++ tests/phpunit/api/v4/Action/GetFieldsTest.php | 15 +++++++ 2 files changed, 60 insertions(+) create mode 100644 Civi/Api4/Service/Spec/Provider/EmailGetSpecProvider.php diff --git a/Civi/Api4/Service/Spec/Provider/EmailGetSpecProvider.php b/Civi/Api4/Service/Spec/Provider/EmailGetSpecProvider.php new file mode 100644 index 0000000000..42ccdd42e8 --- /dev/null +++ b/Civi/Api4/Service/Spec/Provider/EmailGetSpecProvider.php @@ -0,0 +1,45 @@ +getFields() as $field) { + if ($field->getInputType() === 'Email') { + $field->setInputType('Text'); + } + } + } + + /** + * @inheritDoc + */ + public function applies($entity, $action) { + return $action === 'get'; + } + +} diff --git a/tests/phpunit/api/v4/Action/GetFieldsTest.php b/tests/phpunit/api/v4/Action/GetFieldsTest.php index 3de060d975..cd3d6c5319 100644 --- a/tests/phpunit/api/v4/Action/GetFieldsTest.php +++ b/tests/phpunit/api/v4/Action/GetFieldsTest.php @@ -24,6 +24,7 @@ use Civi\Api4\Activity; use Civi\Api4\Campaign; use Civi\Api4\Contact; use Civi\Api4\Contribution; +use Civi\Api4\Email; use Civi\Api4\EntityTag; use Civi\Test\TransactionalInterface; @@ -73,6 +74,20 @@ class GetFieldsTest extends Api4TestBase implements TransactionalInterface { $this->assertCount(1, $fields); } + public function testEmailFields() { + $getFields = Email::getFields(FALSE) + ->setAction('get') + ->execute()->indexBy('name'); + + $this->assertEquals('Text', $getFields['email']['input_type']); + + $createFields = Email::getFields(FALSE) + ->setAction('create') + ->execute()->indexBy('name'); + + $this->assertEquals('Email', $createFields['email']['input_type']); + } + public function testInternalPropsAreHidden() { // Public getFields should not contain @internal props $fields = Contact::getFields(FALSE) -- 2.25.1