![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/app/code/Webkul/PrivateShop/Console/ |
<?php /** * Webkul Software * * @category Webkul * @package Webkul_PrivateShop * @author Webkul Software Private Limited * @copyright Webkul Software Private Limited (https://webkul.com) * @license https://store.webkul.com/license.html */ namespace Webkul\PrivateShop\Console; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Webkul\PrivateShop\Api\Config\ConfigInterface as QueueConfig; use Webkul\PrivateShop\Api\Queue\EncoderInterface; use Webkul\PrivateShop\Api\Queue\PublisherInterface; use Magento\Framework\App\State; class PublishMessageCommand extends Command { public const COMMAND_MESSAGES_PUBLISH = 'wk_mq:messages:publish'; public const ARGUMENT_QUEUE_NAME = 'queue'; public const ARGUMENT_MESSAGE_CONTENT = 'content'; /** * @var QueueConfig */ private $queueConfig; /** * @var EncoderInterface */ private $messageEncoder; /** * @var PublisherInterface */ private $publisher; /** * @var \Magento\Framework\App\State */ protected $state; /** * @param State $state * @param QueueConfig $queueConfig * @param EncoderInterface $messageEncoder * @param PublisherInterface $publisher * @param string|null $name */ public function __construct( State $state, QueueConfig $queueConfig, EncoderInterface $messageEncoder, PublisherInterface $publisher, $name = null ) { $this->state = $state; $this->queueConfig = $queueConfig; $this->messageEncoder = $messageEncoder; $this->publisher = $publisher; parent::__construct($name); } /** * @inheritdoc */ protected function execute(InputInterface $input, OutputInterface $output) { try { // this tosses an error if the areacode is not set. $this->state->getAreaCode(); } catch (\Exception $e) { $this->state->setAreaCode('adminhtml'); } // Load and verify input arguments $queueName = $input->getArgument(self::ARGUMENT_QUEUE_NAME); $message = $input->getArgument(self::ARGUMENT_MESSAGE_CONTENT); // Decode message for publisher $message = $this->messageEncoder->decode($queueName, $message); // Publish message $this->publisher->publish( $queueName, $message ); $output->writeln('Message published.'); } /** * @inheritdoc */ protected function configure() { $this->setName(self::COMMAND_MESSAGES_PUBLISH); $this->setDescription('Publish message to queue'); $this->addArgument( self::ARGUMENT_QUEUE_NAME, InputArgument::REQUIRED, 'The queue name.' ); $this->addArgument( self::ARGUMENT_MESSAGE_CONTENT, InputArgument::REQUIRED, 'The json encoded content of the message.' ); parent::configure(); } }