1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\SalesGraphQl\Model\Resolver;
- use Magento\Framework\GraphQl\Config\Element\Field;
- use Magento\Framework\GraphQl\Query\ResolverInterface;
- use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
- use Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface;
- use Magento\CustomerGraphQl\Model\Customer\CheckCustomerAccount;
- /**
- * Orders data reslover
- */
- class Orders implements ResolverInterface
- {
- /**
- * @var CollectionFactoryInterface
- */
- private $collectionFactory;
- /**
- * @var CheckCustomerAccount
- */
- private $checkCustomerAccount;
- /**
- * @param CollectionFactoryInterface $collectionFactory
- * @param CheckCustomerAccount $checkCustomerAccount
- */
- public function __construct(
- CollectionFactoryInterface $collectionFactory,
- CheckCustomerAccount $checkCustomerAccount
- ) {
- $this->collectionFactory = $collectionFactory;
- $this->checkCustomerAccount = $checkCustomerAccount;
- }
- /**
- * @inheritdoc
- */
- public function resolve(
- Field $field,
- $context,
- ResolveInfo $info,
- array $value = null,
- array $args = null
- ) {
- $customerId = $context->getUserId();
- $this->checkCustomerAccount->execute($customerId, $context->getUserType());
- $items = [];
- $orders = $this->collectionFactory->create($customerId);
- /** @var \Magento\Sales\Model\Order $order */
- foreach ($orders as $order) {
- $items[] = [
- 'id' => $order->getId(),
- 'increment_id' => $order->getIncrementId(),
- 'created_at' => $order->getCreatedAt(),
- 'grand_total' => $order->getGrandTotal(),
- 'status' => $order->getStatus(),
- ];
- }
- return ['items' => $items];
- }
- }
|