You are here

public function ContentHubEntityExportController::queueExportedEntity in Acquia Content Hub 8

Sets a record for an entity to be queued for export.

Parameters

\Drupal\Core\Entity\ContentEntityInterface $entity: The entity that has to be queued for export.

Throws

\Drupal\Core\Entity\EntityStorageException

1 call to ContentHubEntityExportController::queueExportedEntity()
ContentHubEntityExportController::exportEntities in src/Controller/ContentHubEntityExportController.php
Export entities to Content Hub (using the queue if enabled).

File

src/Controller/ContentHubEntityExportController.php, line 377

Class

ContentHubEntityExportController
Controller for Content Hub Export Entities using bulk upload.

Namespace

Drupal\acquia_contenthub\Controller

Code

public function queueExportedEntity(ContentEntityInterface $entity) {
  $exported_entity = $this->contentHubEntitiesTracking
    ->loadExportedByUuid($entity
    ->uuid());
  if ($exported_entity) {
    $exported_entity
      ->setQueued();
    $this->contentHubEntitiesTracking
      ->save();
    return;
  }
  $entity = $this->entityRepository
    ->loadEntityByUuid($entity
    ->getEntityTypeId(), $entity
    ->uuid());
  if (!$entity) {
    $this->loggerFactory
      ->get('acquia_contenthub')
      ->warning('Cannot create record in the tracking table, because the entity cannot be loaded in Drupal. uuid: @uuid type: @type', [
      '@uuid' => $entity
        ->uuid(),
      '@type' => $entity
        ->getEntityTypeId(),
    ]);
    return;
  }

  // Add a new tracking record with queued status set, and
  // imported status empty.
  $exported_entity = $this->contentHubEntitiesTracking
    ->setExportedEntity($entity
    ->getEntityTypeId(), $entity
    ->id(), $entity
    ->uuid(), date('c'), $this->contentHubEntitiesTracking
    ->getSiteOrigin());
  if (!$exported_entity) {
    $this->loggerFactory
      ->get('acquia_contenthub')
      ->warning('Cannot save into Acquia ContentHub tracking table; entity UUID: @uuid, @backtrack', [
      '@uuid' => $entity
        ->uuid(),
      '@backtrack' => __FUNCTION__,
    ]);
    return;
  }
  $exported_entity
    ->setQueued();
  $this->contentHubEntitiesTracking
    ->save();
}