Skip to content
Snippets Groups Projects
Commit ccbea838 authored by Daniel Speicher's avatar Daniel Speicher
Browse files

Issue #3408174 by danielspeicher: Register event before execution

parent b71dee9d
Branches
Tags
No related merge requests found
......@@ -2,6 +2,8 @@
namespace Drupal\eca_push_framework\Plugin\ECA\Event;
use Drupal\Core\TypedData\Exception\MissingDataException;
use Drupal\eca\Plugin\DataType\DataTransferObject;
use Drupal\eca\Plugin\ECA\Event\EventBase;
use Drupal\push_framework\ChannelEvents;
use Drupal\push_framework\Event\ChannelEventBase;
......@@ -51,39 +53,32 @@ class ChannelEvent extends EventBase {
/**
* {@inheritdoc}
* @throws MissingDataException
*/
public function getData(string $key): mixed {
$event = $this->getEvent();
if ($key === 'push_notification' && $event instanceof ChannelEventBase) {
$data = [
'channel' => $event->getChannelPlugin()->getPluginId(),
'recipient' => $event->getUser(),
'entity' => $event->getEntity(),
'display_mode' => $event->getDisplayMode(),
];
$data = DataTransferObject::create();
$data->set('channel',
DataTransferObject::create($event->getChannelPlugin()->getPluginId()));
$data->set('recipient', DataTransferObject::create($event->getUser()));
$data->set('entity', DataTransferObject::create($event->getEntity()));
$data->set('display_mode', DataTransferObject::create($event->getDisplayMode()));
if ($event instanceof ChannelPrepareTemplates) {
$data += [
'subject' => $event->getSubject(),
'body' => $event->getBody(),
'text_format' => $event->getTextFormat(),
'is_html' => $event->isHtml(),
];
$data->set('subject', DataTransferObject::create($event->getSubject()));
$data->set('body', DataTransferObject::create($event->getBody()));
$data->set('text_format', DataTransferObject::create($event->getTextFormat()));
$data->set('is_html', DataTransferObject::create($event->isHtml()));
}
if ($event instanceof ChannelEventLanguageBase) {
$data += [
'language_key' => $event->getLanguageKey(),
];
$data->set('language_key', DataTransferObject::create($event->getLanguageKey()));
}
if ($event instanceof ChannelPreRender) {
$data += [
'elements' => $event->getElements(),
];
$data->set('elements', DataTransferObject::create($event->getElements()));
}
if ($event instanceof ChannelPostRender) {
$data += [
'output' => $event->getOutput(),
];
$data->set('output', DataTransferObject::create($event->getOutput()));
}
return $data;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment