You are here

public static function BynderConfigurationForm::updateMetadataBatchWorker in Bynder 8.3

Same name and namespace in other branches
  1. 8.2 src/Form/BynderConfigurationForm.php \Drupal\bynder\Form\BynderConfigurationForm::updateMetadataBatchWorker()
  2. 4.0.x src/Form/BynderConfigurationForm.php \Drupal\bynder\Form\BynderConfigurationForm::updateMetadataBatchWorker()

Batch operation worker to update the metadata of Bynder media entities.

Parameters

array $context: The context array.

File

src/Form/BynderConfigurationForm.php, line 499

Class

BynderConfigurationForm
Configure bynder to enable OAuth based access.

Namespace

Drupal\bynder\Form

Code

public static function updateMetadataBatchWorker(array &$context) {

  /** @var \Drupal\bynder\BynderService $bynder */
  $bynder = \Drupal::service('bynder');
  if (empty($context['sandbox']['total'])) {
    $context['sandbox']['progress'] = 0;
    $context['sandbox']['current_id'] = -1;
    $context['sandbox']['total'] = $bynder
      ->getTotalCountOfMediaEntities();
    $context['results']['updated'] = 0;
    $context['results']['skipped'] = 0;
  }
  $minimum_id = $context['sandbox']['current_id'] > 0 ? $context['sandbox']['current_id'] : NULL;
  $results = $bynder
    ->updateMetadataLastMediaEntities($minimum_id);
  if (empty($results)) {
    $context['finished'] = 1;
    $context['sandbox']['progress'] = $context['sandbox']['total'];
    $context['results'] = [];
    return;
  }
  $context['sandbox']['current_id'] = $results['max_id'];
  $context['sandbox']['progress'] = $context['sandbox']['progress'] + $results['total'];
  $context['results']['updated'] = $context['results']['updated'] + count($results['updated']);
  $context['results']['skipped'] = $context['results']['skipped'] + count($results['skipped']);
  if ($context['sandbox']['progress'] < $context['sandbox']['total']) {
    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['total'];
  }
  else {
    $context['finished'] = 1;
  }
  $context['message'] = t('Updating local metadata @current of @total', [
    '@current' => $context['sandbox']['progress'],
    '@total' => $context['sandbox']['total'],
  ]);
}