You are here

function _activity_creator_activity_for_entity_updater in Open Social 10.3.x

Same name and namespace in other branches
  1. 8.9 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  2. 8.2 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  3. 8.3 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  4. 8.4 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  5. 8.5 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  6. 8.6 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  7. 8.7 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  8. 8.8 modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  9. 10.0.x modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  10. 10.1.x modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()
  11. 10.2.x modules/custom/activity_creator/activity_creator.module \_activity_creator_activity_for_entity_updater()

Update and or delete activities for given entity.

Parameters

string $action: A string containing the action. Can be delete or update.

\Drupal\Core\Entity\EntityInterface $entity: The entity object which is updated or deleted.

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

\Drupal\Core\Entity\EntityStorageException

2 calls to _activity_creator_activity_for_entity_updater()
activity_creator_entity_delete in modules/custom/activity_creator/activity_creator.module
Implements hook_entity_delete().
activity_creator_entity_update in modules/custom/activity_creator/activity_creator.module
Implements hook_entity_update().

File

modules/custom/activity_creator/activity_creator.module, line 313
Activity Creator module file.

Code

function _activity_creator_activity_for_entity_updater($action, EntityInterface $entity) {
  if ($entity !== NULL) {

    // We never create activities for configuration entities but accessing
    // entity queries during configuration changes may cause errors.
    if ($entity instanceof ConfigEntityInterface) {
      return;
    }

    // Ignore Task entity from search api module.
    if (\Drupal::moduleHandler()
      ->moduleExists('search_api') && $entity instanceof TaskInterface) {
      return;
    }

    /** @var \Drupal\activity_creator\ActivityNotifications $activity_notification_service */
    $activity_notification_service = \Drupal::service('activity_creator.activity_notifications');
    $ids = $activity_notification_service
      ->getActivityIdsByEntity($entity);
    if (empty($ids)) {
      return;
    }
    if ($action === 'update') {
      $tags = [];
      foreach ($ids as $id) {
        $tags[] = 'activity:' . $id;
      }
      Cache::invalidateTags($tags);
    }
    elseif ($action === 'delete') {

      // Delete all activities.
      $activity_storage = \Drupal::entityTypeManager()
        ->getStorage('activity');
      $activities = $activity_storage
        ->loadMultiple($ids);
      $activity_storage
        ->delete($activities);

      // Remove entries from activity_notification_table.
      $activity_notification_service
        ->deleteNotificationsbyIds($ids);
    }
  }
}