![]() 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/magento/module-sales-graph-ql/Model/Shipment/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\SalesGraphQl\Model\Shipment; use Magento\Sales\Api\Data\ShipmentInterface; use Magento\Sales\Api\Data\ShipmentItemInterface; use Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface; /** * Get shipment item data */ class ItemProvider { /** * @var FormatterInterface[] */ private $formatters; /** * @param FormatterInterface[] $formatters */ public function __construct(array $formatters = []) { $this->formatters = $formatters; } /** * Get item data for shipment * * @param ShipmentInterface $shipment * @return array */ public function getItemData(ShipmentInterface $shipment): array { $shipmentItems = []; foreach ($shipment->getItems() as $shipmentItem) { $formattedItem = $this->formatItem($shipment, $shipmentItem); if ($formattedItem) { $shipmentItems[] = $formattedItem; } } return $shipmentItems; } /** * Format individual shipment item * * @param ShipmentInterface $shipment * @param ShipmentItemInterface $shipmentItem * @return array|null */ private function formatItem(ShipmentInterface $shipment, ShipmentItemInterface $shipmentItem): ?array { $orderItem = $shipmentItem->getOrderItem(); $formatter = $this->formatters[$orderItem->getProductType()] ?? $this->formatters['default']; return $formatter->formatShipmentItem($shipment, $shipmentItem); } }