4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC. All rights reserved. |
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 +--------------------------------------------------------------------+
13 namespace Civi\Api4\Service\Spec\Provider
;
15 use Civi\Api4\Service\Spec\FieldSpec
;
16 use Civi\Api4\Service\Spec\RequestSpec
;
18 class EventCreationSpecProvider
implements Generic\SpecProviderInterface
{
23 public function modifySpec(RequestSpec
$spec) {
24 $spec->getFieldByName('event_type_id')->setRequiredIf('empty($values.template_id)');
25 $spec->getFieldByName('title')->setRequiredIf('empty($values.is_template)');
26 $spec->getFieldByName('start_date')->setRequiredIf('empty($values.is_template)');
27 $spec->getFieldByName('template_title')->setRequiredIf('!empty($values.is_template)');
29 $template_id = new FieldSpec('template_id', 'Event', 'Integer');
31 ->setTitle('Template Id')
32 ->setDescription('Template on which to base this new event');
33 $spec->addFieldSpec($template_id);
39 public function applies($entity, $action) {
40 return $entity === 'Event' && $action === 'create';