1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- /**
- * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
- */
- namespace Temando\Shipping\Webservice\Processor;
- use Magento\Framework\Exception\LocalizedException;
- use Magento\Quote\Model\Quote\Address\RateRequest;
- use Temando\Shipping\Api\Data\Order\ShippingExperienceInterface;
- use Temando\Shipping\Model\OrderInterface;
- use Temando\Shipping\Webservice\Processor\OrderOperation\RatesProcessorInterface;
- use Temando\Shipping\Webservice\Response\Type\QualificationResponseType;
- /**
- * Temando Order Qualification Response Processor Pool
- *
- * @package Temando\Shipping\Webservice
- * @author Christoph Aßmann <christoph.assmann@netresearch.de>
- * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
- * @link https://www.temando.com/
- */
- class OrderQualificationProcessorPool
- {
- /**
- * @var RatesProcessorInterface[]
- */
- private $ratesProcessors;
- /**
- * OrderOperationProcessorPool constructor.
- * @param RatesProcessorInterface[] $ratesProcessors
- */
- public function __construct(array $ratesProcessors = [])
- {
- $this->ratesProcessors = $ratesProcessors;
- }
- /**
- * @param RateRequest $rateRequest
- * @param OrderInterface $requestType
- * @param QualificationResponseType $responseType
- * @return ShippingExperienceInterface[]
- * @throws LocalizedException
- */
- public function processRatesResponse(
- RateRequest $rateRequest,
- OrderInterface $requestType,
- QualificationResponseType $responseType
- ) {
- $rates = [];
- foreach ($this->ratesProcessors as $processor) {
- $processorRates = $processor->postProcess($rateRequest, $requestType, $responseType);
- $rates = array_merge($rates, $processorRates);
- }
- return $rates;
- }
- }
|