17
17
*/
18
18
class SetShippingAddressesOnCart implements SetShippingAddressesOnCartInterface
19
19
{
20
- /**
21
- * @var QuoteAddressFactory
22
- */
23
- private $ quoteAddressFactory ;
24
-
25
20
/**
26
21
* @var AssignShippingAddressToCart
27
22
*/
28
23
private $ assignShippingAddressToCart ;
24
+ /**
25
+ * @var GetShippingAddress
26
+ */
27
+ private $ getShippingAddress ;
29
28
30
29
/**
31
- * @param QuoteAddressFactory $quoteAddressFactory
32
30
* @param AssignShippingAddressToCart $assignShippingAddressToCart
31
+ * @param GetShippingAddress $getShippingAddress
33
32
*/
34
33
public function __construct (
35
- QuoteAddressFactory $ quoteAddressFactory ,
36
- AssignShippingAddressToCart $ assignShippingAddressToCart
34
+ AssignShippingAddressToCart $ assignShippingAddressToCart ,
35
+ GetShippingAddress $ getShippingAddress
37
36
) {
38
- $ this ->quoteAddressFactory = $ quoteAddressFactory ;
39
37
$ this ->assignShippingAddressToCart = $ assignShippingAddressToCart ;
38
+ $ this ->getShippingAddress = $ getShippingAddress ;
40
39
}
41
40
42
41
/**
@@ -53,10 +52,6 @@ public function execute(ContextInterface $context, CartInterface $cart, array $s
53
52
$ customerAddressId = $ shippingAddressInput ['customer_address_id ' ] ?? null ;
54
53
$ addressInput = $ shippingAddressInput ['address ' ] ?? null ;
55
54
56
- if ($ addressInput ) {
57
- $ addressInput ['customer_notes ' ] = $ shippingAddressInput ['customer_notes ' ] ?? '' ;
58
- }
59
-
60
55
if (null === $ customerAddressId && null === $ addressInput ) {
61
56
throw new GraphQlInputException (
62
57
__ ('The shipping address must contain either "customer_address_id" or "address". ' )
@@ -69,18 +64,7 @@ public function execute(ContextInterface $context, CartInterface $cart, array $s
69
64
);
70
65
}
71
66
72
- if (null === $ customerAddressId ) {
73
- $ shippingAddress = $ this ->quoteAddressFactory ->createBasedOnInputData ($ addressInput );
74
- } else {
75
- if (false === $ context ->getExtensionAttributes ()->getIsCustomer ()) {
76
- throw new GraphQlAuthorizationException (__ ('The current customer isn \'t authorized. ' ));
77
- }
78
-
79
- $ shippingAddress = $ this ->quoteAddressFactory ->createBasedOnCustomerAddress (
80
- (int )$ customerAddressId ,
81
- $ context ->getUserId ()
82
- );
83
- }
67
+ $ shippingAddress = $ this ->getShippingAddress ->execute ($ context , $ shippingAddressInput );
84
68
85
69
$ this ->assignShippingAddressToCart ->execute ($ cart , $ shippingAddress );
86
70
}
0 commit comments