Repository URL to install this package:
|
Version:
2.0.2 ▾
|
<?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();
}
}