OrderOperationProcessorPool.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Webservice\Processor;
  6. use Magento\Framework\Exception\LocalizedException;
  7. use Magento\Sales\Api\Data\OrderInterface as SalesOrderInterface;
  8. use Temando\Shipping\Model\OrderInterface;
  9. use Temando\Shipping\Webservice\Processor\OrderOperation\SaveProcessorInterface;
  10. use Temando\Shipping\Webservice\Response\Type\OrderResponseType;
  11. /**
  12. * Temando Order Response Processor Pool
  13. *
  14. * @package Temando\Shipping\Webservice
  15. * @author Christoph Aßmann <christoph.assmann@netresearch.de>
  16. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  17. * @link http://www.temando.com/
  18. */
  19. class OrderOperationProcessorPool
  20. {
  21. /**
  22. * @var SaveProcessorInterface[]
  23. */
  24. private $saveProcessors;
  25. /**
  26. * OrderOperationProcessorPool constructor.
  27. * @param SaveProcessorInterface[] $saveProcessors
  28. */
  29. public function __construct(array $saveProcessors = [])
  30. {
  31. $this->saveProcessors = $saveProcessors;
  32. }
  33. /**
  34. * @param SalesOrderInterface $salesOrder
  35. * @param OrderInterface $requestType
  36. * @param OrderResponseType $responseType
  37. * @return void
  38. * @throws LocalizedException
  39. */
  40. public function processSaveResponse(
  41. SalesOrderInterface $salesOrder,
  42. OrderInterface $requestType,
  43. OrderResponseType $responseType
  44. ) {
  45. foreach ($this->saveProcessors as $processor) {
  46. $processor->postProcess($salesOrder, $requestType, $responseType);
  47. }
  48. }
  49. }