<?php namespace Ekyna\Component\Payum\Payzen\Action; use Payum\Core\Action\ActionInterface; use Payum\Core\Bridge\Spl\ArrayObject; use Payum\Core\Exception\RequestNotSupportedException; use Payum\Core\GatewayAwareInterface; use Payum\Core\GatewayAwareTrait; use Payum\Core\Request\Notify; use Payum\Core\Request\Sync; /** * Class NotifyAction * @package Ekyna\Component\Payum\Payzen\Action * @author Etienne Dauvergne <contact@ekyna.com> */ class NotifyAction implements ActionInterface, GatewayAwareInterface { use GatewayAwareTrait; /** * {@inheritDoc} * * @param Notify $request */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $details = ArrayObject::ensureArrayObject($request->getModel()); $this->gateway->execute(new Sync($details)); } /** * {@inheritDoc} */ public function supports($request) { return $request instanceof Notify && $request->getModel() instanceof \ArrayAccess; } }