Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
novicell/custom_forms / src / Plugin / QueueWorker / SubmissionRemapQueueWorker.php
Size: Mime:
<?php

namespace Drupal\custom_forms\Plugin\QueueWorker;

use Drupal\Core\Annotation\QueueWorker;
use Drupal\Core\Annotation\Translation;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Queue\QueueWorkerBase;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\custom_forms\CustomFormsSubmissionHandlerManager;
use Drupal\custom_forms\Entity\CustomFormSubmission;
use Drupal\custom_forms\Entity\CustomFormSubmissionHandler;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Class SubmissionRemapQueueWorker
 *
 * @package Drupal\custom_forms\Plugin\QueueWorker
 *
 * @QueueWorker(
 *   id = "submission_remap",
 *   title = @Translation("Cron submission remapping"),
 *   cron = {"time" = 30}
 * )
 */
class SubmissionRemapQueueWorker extends QueueWorkerBase implements ContainerFactoryPluginInterface {
  use StringTranslationTrait;

  /**
   * The logger channel factory.
   *
   * @var \Drupal\Core\Logger\LoggerChannelInterface
   */
  protected $logger;

  /**
   * @var \Drupal\custom_forms\CustomFormsSubmissionHandlerManager
   *   The plugin manager for submission handler plugins.
   */
  protected $pluginManager;

  protected $entityStorage;

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static(
      $configuration,
      $plugin_id,
      $plugin_definition,
      $container->get('plugin.manager.custom_forms_submission_handlers'),
      $container->get('logger.factory')
    );
  }

  /**
   * @inheritDoc
   */
  public function __construct(
    array $configuration,
    $plugin_id,
    $plugin_definition,
    CustomFormsSubmissionHandlerManager $pluginManager,
    LoggerChannelFactoryInterface $logger_factory
  ) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->logger           = $logger_factory->get('Custom Forms');
    $this->pluginManager    = $pluginManager;
    $this->entityStorage    = \Drupal::entityTypeManager()->getStorage('custom_form_submission');
  }

  /**
   * {@inheritdoc}
   */
  public function processItem($data) {
    /** @var \Drupal\custom_forms\Entity\CustomFormSubmission $submission */
    $submission = $this->entityStorage->load($data['id']);
    $submission->postSave($this->entityStorage, TRUE);
    $submission->save();
  }

}