protected function trackItemsInsertedOrUpdated()

in modules/quanthub_indicator/src/Entity/QuanthubIndex.php [291:314]


  protected function trackItemsInsertedOrUpdated($datasource_id, array $ids, $tracker_method) {
    if ($this->hasValidTracker() && $this->status()) {
      $item_ids = [];
      foreach ($ids as $id) {
        if (str_contains($id, 'indicator')) {
          if (!str_contains($id, 'entity:node')) {
            $item_ids[] = 'entity:node/' . $id;
          }
          else {
            $item_ids[] = $id;
          }
        }
        else {
          $item_ids[] = Utility::createCombinedId($datasource_id, $id);
        }
      }
      $this->getTrackerInstance()->$tracker_method($item_ids);
      if (!$this->isReadOnly() && $this->getOption('index_directly')
        && !$this->isBatchTracking()) {
        \Drupal::getContainer()->get('search_api.post_request_indexing')
          ->registerIndexingOperation($this->id(), $item_ids);
      }
    }
  }