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/old/vendor/extmag/shiplab/Helper/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/extmag/shiplab/Helper/Pickup.php
<?php
/**
 * Copyright © Extmag. All rights reserved.
 */

namespace Extmag\Shiplab\Helper;

use Exception;
use Magento\Framework\App\Helper\AbstractHelper;
use Magento\Framework\App\Helper\Context;
use Magento\Framework\Message\ManagerInterface;

class Pickup extends AbstractHelper
{
    /**
     * @var DataPrepareFactory
     */
    protected $dataPrepareFactory;

    /**
     * @var ManagerInterface
     */
    protected $messageManager;

    /**
     * Extmag Model Saver
     *
     * @var DataSave
     */
    protected $modelSaver;

    /**
     * Extmag Ship
     *
     * @var RequestFactory
     */
    protected $requestToAPI;

    /**
     * @param Context $context
     * @param DataPrepareFactory $dataPrepareFactory
     * @param ManagerInterface $messageManager
     * @param DataSave $defSave
     * @param RequestFactory $requestToAPI
     */
    public function __construct(
        Context $context,
        DataPrepareFactory $dataPrepareFactory,
        ManagerInterface $messageManager,
        DataSave $defSave,
        RequestFactory $requestToAPI
    ) {
        parent::__construct($context);
        $this->dataPrepareFactory = $dataPrepareFactory;
        $this->messageManager = $messageManager;
        $this->modelSaver = $defSave;
        $this->requestToAPI = $requestToAPI;
    }

    /**
     * @param $carrierCode
     * @param array $labels
     * @param int $cronHour
     * @return array
     * @throws Exception
     */
    public function makeDataAndSavePickup($carrierCode, array $labels, $cronHour = -1)
    {
        $connector = $this->requestToAPI->create($carrierCode, 'pickupcreation');
        $labelsByAddresses = [];

        /**
         * @var \Extmag\Shiplab\Model\Label $label
         */
        foreach ($labels as $label) {
            $requestData = json_decode($label->getRequest(), true);
            $labelsByAddresses[$requestData['ship_from_address_id']][] = $label;
        }

        if (!empty($labelsByAddresses)) {
            foreach ($labelsByAddresses as $labelsByAddress) {
                $dataPrepare = $this->dataPrepareFactory->create($carrierCode);
                $data = $dataPrepare->getPickupData($labelsByAddress, $cronHour);
                if (!empty($data)) {
                    $connector->setData($data);
                    $connector->addRequest();
                }
            }

            if ($connector->checkRequestData()) {
                $response = $connector->send();

                return $this->modelSaver->save($carrierCode, 'pickupcreation', $response);
            }
        }

        return [];
    }

    /**
     * @param $carrierCode
     * @param array $pickups
     * @return array
     * @throws Exception
     */
    public function makeDataAndCancelPickup($carrierCode, array $pickups)
    {
        $connector = $this->requestToAPI->create($carrierCode, 'pickupcancel');

        foreach ($pickups as $pickup) {
            $dataPrepare = $this->dataPrepareFactory->create($carrierCode);
            $data = $dataPrepare->getPickupCancelData($pickup);
            if (!empty($data)) {
                $connector->setData($data);
                $connector->addRequest();
            }
        }

        if ($connector->checkRequestData()) {
            $response = $connector->send();

            return $this->modelSaver->save($carrierCode, 'pickupcancel', $response);
        }

        return [];
    }
}

Spamworldpro Mini