Skip to content
Snippets Groups Projects

Added and event and an event dispatch upon voting

Files

@@ -12,6 +12,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Drupal\admin_feedback\Event\VoteEvent;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
/**
* Controller for the admin_feedback module.
@@ -39,6 +41,13 @@ class AdminFeedbackController extends ControllerBase {
*/
protected $langcode;
/**
* Event Dispatcher Service.
*
* @var \Symfony\Component\EventDispatcher\EventDispatcherInterface
*/
protected $eventDispatcher;
/**
* {@inheritdoc}
*/
@@ -46,7 +55,8 @@ class AdminFeedbackController extends ControllerBase {
return new static(
$container->get('database'),
$container->get('request_stack'),
$container->get('language_manager')
$container->get('language_manager'),
$container->get('event_dispatcher')
);
}
@@ -57,10 +67,11 @@ class AdminFeedbackController extends ControllerBase {
* @param \Symfony\Component\HttpFoundation\RequestStack $requestStack
* @param \Drupal\Core\Language\LanguageManagerInterface $languageManager
*/
public function __construct(Connection $database, RequestStack $requestStack, LanguageManagerInterface $languageManager) {
public function __construct(Connection $database, RequestStack $requestStack, LanguageManagerInterface $languageManager, EventDispatcherInterface $eventDispatcher) {
$this->database = $database;
$this->requestStack = $requestStack->getCurrentRequest();
$this->langcode = $languageManager->getCurrentLanguage()->getId();
$this->eventDispatcher = $eventDispatcher;
}
/**
@@ -171,6 +182,12 @@ class AdminFeedbackController extends ControllerBase {
$feedback = $this->requestStack->request->get('vote');
$node_id = $this->requestStack->request->get('node_id');
// Dispatch a Vote event, in case any module needs to update this with custom logic.
$event = new VoteEvent();
$event->setNid($node_id);
$event->setVote($feedback);
$this->eventDispatcher->dispatch(VoteEvent::VOTE_EVENT, $event);
switch ($feedback) {
case 'yes':
$feedback = ADMIN_FEEDBACK_YES_VALUE;
Loading