Commit | Line | Data |
---|---|---|
19b53e5b C |
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 EventCreationSpecProvider implements Generic\SpecProviderInterface { | |
9 | ||
10 | /** | |
11 | * @inheritDoc | |
12 | */ | |
13 | public function modifySpec(RequestSpec $spec) { | |
14 | $spec->getFieldByName('event_type_id')->setRequiredIf('empty($values.template_id)'); | |
15 | $spec->getFieldByName('title')->setRequiredIf('empty($values.is_template)'); | |
16 | $spec->getFieldByName('start_date')->setRequiredIf('empty($values.is_template)'); | |
17 | $spec->getFieldByName('template_title')->setRequiredIf('!empty($values.is_template)'); | |
18 | ||
19 | $template_id = new FieldSpec('template_id', 'Event', 'Integer'); | |
20 | $template_id | |
21 | ->setTitle('Template Id') | |
22 | ->setDescription('Template on which to base this new event'); | |
23 | $spec->addFieldSpec($template_id); | |
24 | } | |
25 | ||
26 | /** | |
27 | * @inheritDoc | |
28 | */ | |
29 | public function applies($entity, $action) { | |
30 | return $entity === 'Event' && $action === 'create'; | |
31 | } | |
32 | ||
33 | } |