Merge pull request #15830 from eileenmcnaughton/dedupe4
[civicrm-core.git] / Civi / Api4 / Service / Spec / Provider / EventCreationSpecProvider.php
1 <?php
2
3 /*
4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC. All rights reserved. |
6 | |
7 | This work is published under the GNU AGPLv3 license with some |
8 | permitted exceptions and without any warranty. For full license |
9 | and copyright information, see https://civicrm.org/licensing |
10 +--------------------------------------------------------------------+
11 */
12
13 /**
14 *
15 * @package CRM
16 * @copyright CiviCRM LLC https://civicrm.org/licensing
17 * $Id$
18 *
19 */
20
21
22 namespace Civi\Api4\Service\Spec\Provider;
23
24 use Civi\Api4\Service\Spec\FieldSpec;
25 use Civi\Api4\Service\Spec\RequestSpec;
26
27 class EventCreationSpecProvider implements Generic\SpecProviderInterface {
28
29 /**
30 * @inheritDoc
31 */
32 public function modifySpec(RequestSpec $spec) {
33 $spec->getFieldByName('event_type_id')->setRequiredIf('empty($values.template_id)');
34 $spec->getFieldByName('title')->setRequiredIf('empty($values.is_template)');
35 $spec->getFieldByName('start_date')->setRequiredIf('empty($values.is_template)');
36 $spec->getFieldByName('template_title')->setRequiredIf('!empty($values.is_template)');
37
38 $template_id = new FieldSpec('template_id', 'Event', 'Integer');
39 $template_id
40 ->setTitle('Template Id')
41 ->setDescription('Template on which to base this new event');
42 $spec->addFieldSpec($template_id);
43 }
44
45 /**
46 * @inheritDoc
47 */
48 public function applies($entity, $action) {
49 return $entity === 'Event' && $action === 'create';
50 }
51
52 }