You are here

function social_event_invite_user_insert in Open Social 8.9

Same name and namespace in other branches
  1. 10.3.x modules/social_features/social_event/modules/social_event_invite/social_event_invite.module \social_event_invite_user_insert()
  2. 10.0.x modules/social_features/social_event/modules/social_event_invite/social_event_invite.module \social_event_invite_user_insert()
  3. 10.1.x modules/social_features/social_event/modules/social_event_invite/social_event_invite.module \social_event_invite_user_insert()
  4. 10.2.x modules/social_features/social_event/modules/social_event_invite/social_event_invite.module \social_event_invite_user_insert()

Implements hook_ENTITY_TYPE_insert().

File

modules/social_features/social_event/modules/social_event_invite/social_event_invite.module, line 223
The Social event invite enroll module.

Code

function social_event_invite_user_insert(UserInterface $entity) {

  // @todo: implement a better, more specific way to invalidate cache.
  // - config:field.storage.event_enrollment.field_request_or_invite_status.
  // - config:views.view.event_manage_enrollment_invites.
  // - event_enrollment_list.
  // - user_list.
  // - profile_list.
  // - profile_view.
  // - event_enrollment:ID.
  $tags = [
    'config:field.storage.event_enrollment.field_request_or_invite_status',
    'config:views.view.event_manage_enrollment_invites',
  ];
  Cache::invalidateTags($tags);

  // After a user registers check if there are invites and convert them to uid.

  /** @var \Drupal\social_event\EventEnrollmentStatusHelper $enrollments */
  $enrollments = \Drupal::service('social_event.status_helper');
  foreach ($enrollments
    ->getAllUserEventEnrollments($entity
    ->getEmail()) as $enrollment) {

    /** @var \Drupal\social_event\EventEnrollmentInterface $enrollment */
    $enrollment
      ->set('field_email', '');
    $enrollment
      ->set('field_account', $entity
      ->id());
    $enrollment
      ->set('user_id', $entity
      ->id());
    $enrollment
      ->save();
  }
}