Merge pull request #15841 from mattwire/participant_cleanup_removeparticipantfrominput
[civicrm-core.git] / Civi / Api4 / Service / Spec / Provider / EventCreationSpecProvider.php
CommitLineData
19b53e5b
C
1<?php
2
380f3545
TO
3/*
4 +--------------------------------------------------------------------+
41498ac5 5 | Copyright CiviCRM LLC. All rights reserved. |
380f3545 6 | |
41498ac5
TO
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 |
380f3545
TO
10 +--------------------------------------------------------------------+
11 */
12
13/**
14 *
15 * @package CRM
ca5cec67 16 * @copyright CiviCRM LLC https://civicrm.org/licensing
380f3545
TO
17 * $Id$
18 *
19 */
20
21
19b53e5b
C
22namespace Civi\Api4\Service\Spec\Provider;
23
24use Civi\Api4\Service\Spec\FieldSpec;
25use Civi\Api4\Service\Spec\RequestSpec;
26
27class 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}