4d3aba57995a5c37d9f5f8a7aab50e4744669131
[civicrm-core.git] / Civi / Api4 / Service / Spec / Provider / CustomFieldCreationSpecProvider.php
1 <?php
2
3 namespace Civi\Api4\Service\Spec\Provider;
4
5 use Civi\Api4\Service\Spec\FieldSpec;
6 use Civi\Api4\Service\Spec\RequestSpec;
7
8 class CustomFieldCreationSpecProvider implements Generic\SpecProviderInterface {
9
10 /**
11 * @inheritDoc
12 */
13 public function modifySpec(RequestSpec $spec) {
14 $optionField = new FieldSpec('option_values', $spec->getEntity(), 'Array');
15 $optionField->setTitle(ts('Option Values'));
16 $optionField->setDescription('Pass an array of options (value => label) to create this field\'s option values');
17 $spec->addFieldSpec($optionField);
18 $spec->getFieldByName('data_type')->setDefaultValue('String')->setRequired(FALSE);
19 }
20
21 /**
22 * @inheritDoc
23 */
24 public function applies($entity, $action) {
25 return $entity === 'CustomField' && $action === 'create';
26 }
27
28 }