core/lib/Thelia/Action/Payment.php line 30

  1. <?php
  2. /*
  3.  * This file is part of the Thelia package.
  4.  * http://www.thelia.net
  5.  *
  6.  * (c) OpenStudio <info@thelia.net>
  7.  *
  8.  * For the full copyright and license information, please view the LICENSE
  9.  * file that was distributed with this source code.
  10.  */
  11. namespace Thelia\Action;
  12. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  13. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  14. use Thelia\Core\Event\Payment\IsValidPaymentEvent;
  15. use Thelia\Core\Event\TheliaEvents;
  16. /**
  17.  * Class Payment.
  18.  *
  19.  * @author Julien Chanséaume <julien@thelia.net>
  20.  */
  21. class Payment implements EventSubscriberInterface
  22. {
  23.     /**
  24.      * Check if a module is valid.
  25.      */
  26.     public function isValid(IsValidPaymentEvent $event$eventNameEventDispatcherInterface $dispatcher): void
  27.     {
  28.         $module $event->getModule();
  29.         // dispatch event to target specific module
  30.         $dispatcher->dispatch(
  31.             $event,
  32.             TheliaEvents::getModuleEvent(
  33.                 TheliaEvents::MODULE_PAYMENT_IS_VALID,
  34.                 $module->getCode()
  35.             )
  36.         );
  37.         if ($event->isPropagationStopped()) {
  38.             return;
  39.         }
  40.         // call legacy module method
  41.         $event->setValidModule($module->isValidPayment())
  42.             ->setMinimumAmount($module->getMinimumAmount())
  43.             ->setMaximumAmount($module->getMaximumAmount());
  44.     }
  45.     /**
  46.      * {@inheritdoc}
  47.      */
  48.     public static function getSubscribedEvents()
  49.     {
  50.         return [
  51.             TheliaEvents::MODULE_PAYMENT_IS_VALID => ['isValid'128],
  52.         ];
  53.     }
  54. }