Skip to content

Commit 0a6c0b5

Browse files
author
vitaliyboyko
committed
graphQl: removed multishipping implementation, fixed namespaces
1 parent bf0aaad commit 0a6c0b5

File tree

6 files changed

+117
-258
lines changed

6 files changed

+117
-258
lines changed
Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
declare(strict_types=1);
77

8-
namespace Magento\QuoteGraphQl\Model\Resolver\ShippingAddress\SetShippingAddressOnCart;
8+
namespace Magento\QuoteGraphQl\Model\Cart;
99

1010
use Magento\Authorization\Model\UserContextInterface;
1111
use Magento\Customer\Api\Data\AddressInterface;
@@ -16,7 +16,12 @@
1616
use Magento\Quote\Model\ShippingAddressManagementInterface;
1717
use Magento\Customer\Api\AddressRepositoryInterface;
1818

19-
class SingleShipping
19+
/**
20+
* Class SetShippingAddressOnCart
21+
*
22+
* Set shipping address for a specified shopping cart
23+
*/
24+
class SetShippingAddressOnCart
2025
{
2126
/**
2227
* @var ShippingAddressManagementInterface
@@ -51,11 +56,17 @@ public function __construct(
5156
/**
5257
* @param ContextInterface $context
5358
* @param int $cartId
54-
* @param array $shippingAddress
59+
* @param array $shippingAddresses
5560
* @return void
5661
*/
57-
public function setAddress(ContextInterface $context, int $cartId, array $shippingAddress): void
62+
public function setAddresses(ContextInterface $context, int $cartId, array $shippingAddresses): void
5863
{
64+
if (count($shippingAddresses) > 1) {
65+
throw new GraphQlInputException(
66+
__('Multiple address does not allowed here!')
67+
);
68+
}
69+
$shippingAddress = current($shippingAddresses);
5970
$customerAddressId = $shippingAddress['customer_address_id'] ?? null;
6071
$addressInput = $shippingAddress['address'] ?? null;
6172

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\QuoteGraphQl\Model\Resolver;
9+
10+
use Magento\Framework\GraphQl\Config\Element\Field;
11+
use Magento\Framework\GraphQl\Exception\GraphQlInputException;
12+
use Magento\Framework\GraphQl\Query\ResolverInterface;
13+
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
14+
use Magento\Framework\Stdlib\ArrayManager;
15+
use Magento\Quote\Model\MaskedQuoteIdToQuoteIdInterface;
16+
use Magento\Quote\Model\ShippingAddressManagementInterface;
17+
use Magento\QuoteGraphQl\Model\Cart\GetCartForUser;
18+
use Magento\QuoteGraphQl\Model\Cart\SetShippingAddressOnCart;
19+
20+
/**
21+
* Class SetShippingAddressesOnCart
22+
*
23+
* Mutation resolver for setting shipping addresses for shopping cart
24+
*/
25+
class SetShippingAddressesOnCart implements ResolverInterface
26+
{
27+
/**
28+
* @var MaskedQuoteIdToQuoteIdInterface
29+
*/
30+
private $maskedQuoteIdToQuoteId;
31+
32+
/**
33+
* @var SetShippingAddressOnCart
34+
*/
35+
private $setShippingAddressOnCart;
36+
37+
/**
38+
* @var ShippingAddressManagementInterface
39+
*/
40+
private $shippingAddressManagement;
41+
42+
/**
43+
* @var GetCartForUser
44+
*/
45+
private $getCartForUser;
46+
47+
/**
48+
* @var ArrayManager
49+
*/
50+
private $arrayManager;
51+
52+
/**
53+
* @param MaskedQuoteIdToQuoteIdInterface $maskedQuoteIdToQuoteId
54+
* @param SetShippingAddressOnCart $setShippingAddressOnCart
55+
* @param ShippingAddressManagementInterface $shippingAddressManagement
56+
* @param GetCartForUser $getCartForUser
57+
* @param ArrayManager $arrayManager
58+
*/
59+
public function __construct(
60+
MaskedQuoteIdToQuoteIdInterface $maskedQuoteIdToQuoteId,
61+
SetShippingAddressOnCart $setShippingAddressOnCart,
62+
ShippingAddressManagementInterface $shippingAddressManagement,
63+
GetCartForUser $getCartForUser,
64+
ArrayManager $arrayManager
65+
) {
66+
$this->maskedQuoteIdToQuoteId = $maskedQuoteIdToQuoteId;
67+
$this->setShippingAddressOnCart = $setShippingAddressOnCart;
68+
$this->shippingAddressManagement = $shippingAddressManagement;
69+
$this->getCartForUser = $getCartForUser;
70+
$this->arrayManager = $arrayManager;
71+
}
72+
73+
/**
74+
* @inheritdoc
75+
*/
76+
public function resolve(Field $field, $context, ResolveInfo $info, array $value = null, array $args = null)
77+
{
78+
$shippingAddresses = $this->arrayManager->get('input/shipping_addresses', $args);
79+
$maskedCartId = $this->arrayManager->get('input/cart_id', $args);
80+
81+
if (!$maskedCartId) {
82+
throw new GraphQlInputException(__('Required parameter "cart_id" is missing'));
83+
}
84+
if (!$shippingAddresses) {
85+
throw new GraphQlInputException(__('Required parameter "shipping_addresses" is missing'));
86+
}
87+
88+
$maskedCartId = $args['input']['cart_id'];
89+
$cart = $this->getCartForUser->execute($maskedCartId, $context->getUserId());
90+
$cartId = (int)$cart->getEntityId();
91+
92+
$this->setShippingAddressOnCart->setAddresses($context, $cartId, $shippingAddresses);
93+
94+
return [
95+
'cart' => [
96+
'cart_id' => $maskedCartId,
97+
'model' => $cart
98+
]
99+
];
100+
}
101+
}

app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddress/SetShippingAddressOnCart/MultiShipping.php

Lines changed: 0 additions & 76 deletions
This file was deleted.

app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddress/SetShippingAddressOnCart/MultiShipping/ShippingItemsMapper.php

Lines changed: 0 additions & 43 deletions
This file was deleted.

app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddress/SetShippingAddressesOnCart.php

Lines changed: 0 additions & 133 deletions
This file was deleted.

0 commit comments

Comments
 (0)