From 339391a952949a1d8ad224a7c9fd6094324a9db3 Mon Sep 17 00:00:00 2001 From: ezoller Date: Tue, 15 Dec 2020 21:39:04 +0000 Subject: [PATCH] fix dependency injection --- .../Action/GenerateImageDerivativeFile.php | 141 +++++++++++++++++- 1 file changed, 140 insertions(+), 1 deletion(-) diff --git a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php index 88bd01aa..98eff013 100644 --- a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php +++ b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php @@ -2,6 +2,14 @@ namespace Drupal\islandora_image\Plugin\Action; +use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Entity\EntityInterface; +use Drupal\Core\Entity\EntityTypeManagerInterface; +use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Messenger\MessengerInterface; +use Drupal\Core\Session\AccountInterface; +use Drupal\Core\Url; +use Drupal\islandora\IslandoraUtils; use Drupal\Core\Form\FormStateInterface; use Drupal\islandora\Plugin\Action\AbstractGenerateDerivativeMediaFile; @@ -16,6 +24,137 @@ use Drupal\islandora\Plugin\Action\AbstractGenerateDerivativeMediaFile; */ class GenerateImageDerivativeFile extends AbstractGenerateDerivativeMediaFile { + /** + * Islandora utility functions. + * + * @var \Drupal\islandora\IslandoraUtils + */ + protected $utils; + + /** + * Media source service. + * + * @var \Drupal\islandora\MediaSource\MediaSourceService + */ + protected $mediaSource; + + /** + * Token replacement service. + * + * @var \Drupal\token\Token + */ + protected $token; + + /** + * The entity field manager. + * + * @var \Drupal\Core\Entity\EntityFieldManager + */ + protected $entityFieldManager; + + /** + * The messenger. + * + * @var \Drupal\Core\Messenger\MessengerInterface + */ + protected $messenger; + + /** + * The system file config. + * + * @var \Drupal\Core\Config\ImmutableConfig + */ + protected $config; + + /** + * Constructs a EmitEvent action. + * + * @param array $configuration + * A configuration array containing information about the plugin instance. + * @param string $plugin_id + * The plugin_id for the plugin instance. + * @param mixed $plugin_definition + * The plugin implementation definition. + * @param \Drupal\Core\Session\AccountInterface $account + * Current user. + * @param \Drupal\Core\Entity\EntityTypeManager $entity_type_manager + * Entity type manager. + * @param \Drupal\islandora\EventGenerator\EventGeneratorInterface $event_generator + * EventGenerator service to serialize AS2 events. + * @param \Stomp\StatefulStomp $stomp + * Stomp client. + * @param \Drupal\jwt\Authentication\Provider\JwtAuth $auth + * JWT Auth client. + * @param \Drupal\islandora\IslandoraUtils $utils + * Islandora utility functions. + * @param \Drupal\islandora\MediaSource\MediaSourceService $media_source + * Media source service. + * @param \Drupal\token\Token $token + * Token service. + * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager + * Field Manager service. + * @param \Drupal\Core\Messenger\MessengerInterface $messenger + * The messenger. + * @param \Drupal\Core\Config\ConfigFactoryInterface $config + * The system file config. + */ + public function __construct( + array $configuration, + $plugin_id, + $plugin_definition, + AccountInterface $account, + EntityTypeManager $entity_type_manager, + EventGeneratorInterface $event_generator, + StatefulStomp $stomp, + JwtAuth $auth, + IslandoraUtils $utils, + MediaSourceService $media_source, + Token $token, + EntityFieldManagerInterface $entity_field_manager, + MessengerInterface $messenger, + ConfigFactoryInterface $config + ) { + $this->utils = $utils; + $this->mediaSource = $media_source; + $this->token = $token; + $this->entityFieldManager = $entity_field_manager; + $this->messenger = $messenger; + $this->config = $config->get('system.file'); + parent::__construct( + $configuration, + $plugin_id, + $plugin_definition, + $account, + $entity_type_manager, + $event_generator, + $stomp, + $auth, + $messenger + ); + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { + return new static( + $configuration, + $plugin_id, + $plugin_definition, + $container->get('current_user'), + $container->get('entity_type.manager'), + $container->get('islandora.eventgenerator'), + $container->get('islandora.stomp'), + $container->get('jwt.authentication.jwt'), + $container->get('islandora.utils'), + $container->get('islandora.media_source_service'), + $container->get('token'), + $container->get('entity_field.manager'), + $container->get('messenger'), + $container->get('config.factory') + ); + } + /** * {@inheritdoc} */ @@ -25,7 +164,7 @@ class GenerateImageDerivativeFile extends AbstractGenerateDerivativeMediaFile { $config['mimetype'] = 'application/xml'; $config['queue'] = 'islandora-connector-houdini'; $config['destination_media_type'] = 'file'; - $config['scheme'] = $this->config('system.file')->get('default_scheme'); + $config['scheme'] = $this->config->get('default_scheme'); return $config; }