api4 - Import CRM/, Civi/, templates/, ang/, css/, js/, xml/menu
[civicrm-core.git] / Civi / Api4 / Service / Spec / Provider / EventCreationSpecProvider.php
CommitLineData
19b53e5b
C
1<?php
2
3namespace Civi\Api4\Service\Spec\Provider;
4
5use Civi\Api4\Service\Spec\FieldSpec;
6use Civi\Api4\Service\Spec\RequestSpec;
7
8class 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}