Spamworldpro Mini Shell
Spamworldpro


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/Model/Queue/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/cartforge.co/app/code/Webkul/PrivateShop/Model/Queue/MessageRepository.php
<?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\Model\Queue;

use Webkul\PrivateShop\Api\Data\MessageInterface;
use Webkul\PrivateShop\Api\Data\MessageInterfaceFactory;
use Webkul\PrivateShop\Api\Queue\MessageRepositoryInterface;
use Webkul\PrivateShop\Model\ResourceModel\Queue\Message as ResourceModel;
use Magento\Framework\Exception\CouldNotSaveException;
use Webkul\PrivateShop\Model\ResourceModel\Queue\Message\CollectionFactory as CollectionFactory;

class MessageRepository implements MessageRepositoryInterface
{
    /**
     * @var MessageInterfaceFactory
     */
    protected $queueMessageFactory;
    
    /**
     * @var ResourceModel
     */
    protected $resourceModel;
    
    /**
     * @var CollectionFactory
     */
    protected $collectionFactory;
    
    /**
     * @var int
     */
    protected $maxRetries;
    
    /**
     * @param MessageInterfaceFactory $queueMessageFactory
     * @param ResourceModel $resourceModel
     * @param CollectionFactory $collectionFactory
     * @param int $maxRetries
     */
    public function __construct(
        MessageInterfaceFactory $queueMessageFactory,
        ResourceModel $resourceModel,
        CollectionFactory $collectionFactory,
        $maxRetries = 5
    ) {
        $this->queueMessageFactory = $queueMessageFactory;
        $this->resourceModel = $resourceModel;
        $this->collectionFactory = $collectionFactory;
        $this->maxRetries = $maxRetries;
    }
    
    /**
     * @inheritdoc
     */
    public function create(MessageInterface $message)
    {
        try {
            $group = json_decode($message->getMessageContent(), true);
            $groupID = isset($group['group_id']) ? $group['group_id'] : 0;
            $message->setGroupId($groupID);
            $this->resourceModel->save($message);
        } catch (\Exception $exception) {
            throw new CouldNotSaveException(__(
                'Could not save the message: %1',
                $exception->getMessage()
            ));
        }
        return $message;
    }
    
    /**
     * @inheritdoc
     */
    public function next()
    {
        // Create collection instance and apply filter
        $collection = $this->collectionFactory->create()
            ->addFieldToFilter('status', 0)
            ->setOrder('updated_at', 'ASC')
            ->setCurPage(1)
            ->setPageSize(1);
        
        return $collection->getLastItem();
    }
    
    /**
     * @inheritdoc
     */
    public function get($id)
    {
        if (!$id) {
            throw new \Magento\Framework\Exception\LocalizedException(
                __('No id specified in queue message get')
            );
        }
        
        $queueMessage = $this->queueMessageFactory->create();
        $this->resourceModel->load($queueMessage, $id);

        if ($id != $queueMessage->getId()) {
            throw new \Magento\Framework\Exception\LocalizedException(
                __('Queue message not found')
            );
        }

        return $queueMessage;
    }
    
    /**
     * @inheritdoc
     */
    public function requeue(MessageInterface $message)
    {
        // Trigger date update
        $message->setUpdatedAt(null);
        
        // Increase retries count
        $message->setRetries($message->getRetries() + 1);
        if ($message->getRetries() >= $this->maxRetries) {
            $message->setStatus(MessageInterface::STATUS_MAX_RETRIES_EXCEEDED);
        }
        
        $this->resourceModel->save($message);
    }
    
    /**
     * @inheritdoc
     */
    public function remove(MessageInterface $message)
    {
        $this->resourceModel->delete($message);
    }
}

Spamworldpro Mini