You are here

public function RegistrantFactory::createRegistrant in RNG - Events and Registrations 8

Same name and namespace in other branches
  1. 8.2 src/RegistrantFactory.php \Drupal\rng\RegistrantFactory::createRegistrant()
  2. 3.x src/RegistrantFactory.php \Drupal\rng\RegistrantFactory::createRegistrant()

Create a registrant entity based on available contexts.

Parameters

array $context: An array of contexts, including:

  • event (required): An event entity.
  • identity_entity_type: Entity type ID of the identity.
  • identity_bundle: Bundle of the identity.
  • identity: A identity entity.

Return value

\Drupal\rng\RegistrantInterface A registrant entity.

Throws

\InvalidArgumentException If missing required context.

\Exception Miscellaneous errors, including missing configuration on event type.

Overrides RegistrantFactoryInterface::createRegistrant

File

src/RegistrantFactory.php, line 44

Class

RegistrantFactory
The registrant entity factory.

Namespace

Drupal\rng

Code

public function createRegistrant(array $context) {
  if (!isset($context['event']) || !$context['event'] instanceof EntityInterface) {
    throw new \InvalidArgumentException('Registrant factory missing event context.');
  }
  $event = $context['event'];
  $event_meta = $this->eventManager
    ->getMeta($event);
  $event_type = $event_meta
    ->getEventType();
  $values = [
    'type' => $event_type
      ->getDefaultRegistrantType(),
  ];
  $registrant = $this->registrantStorage
    ->create($values);
  return $registrant;
}