1717 */
1818class SetShippingAddressesOnCart implements SetShippingAddressesOnCartInterface
1919{
20- /**
21- * @var QuoteAddressFactory
22- */
23- private $ quoteAddressFactory ;
24-
2520 /**
2621 * @var AssignShippingAddressToCart
2722 */
2823 private $ assignShippingAddressToCart ;
24+ /**
25+ * @var GetShippingAddress
26+ */
27+ private $ getShippingAddress ;
2928
3029 /**
31- * @param QuoteAddressFactory $quoteAddressFactory
3230 * @param AssignShippingAddressToCart $assignShippingAddressToCart
31+ * @param GetShippingAddress $getShippingAddress
3332 */
3433 public function __construct (
35- QuoteAddressFactory $ quoteAddressFactory ,
36- AssignShippingAddressToCart $ assignShippingAddressToCart
34+ AssignShippingAddressToCart $ assignShippingAddressToCart ,
35+ GetShippingAddress $ getShippingAddress
3736 ) {
38- $ this ->quoteAddressFactory = $ quoteAddressFactory ;
3937 $ this ->assignShippingAddressToCart = $ assignShippingAddressToCart ;
38+ $ this ->getShippingAddress = $ getShippingAddress ;
4039 }
4140
4241 /**
@@ -53,10 +52,6 @@ public function execute(ContextInterface $context, CartInterface $cart, array $s
5352 $ customerAddressId = $ shippingAddressInput ['customer_address_id ' ] ?? null ;
5453 $ addressInput = $ shippingAddressInput ['address ' ] ?? null ;
5554
56- if ($ addressInput ) {
57- $ addressInput ['customer_notes ' ] = $ shippingAddressInput ['customer_notes ' ] ?? '' ;
58- }
59-
6055 if (null === $ customerAddressId && null === $ addressInput ) {
6156 throw new GraphQlInputException (
6257 __ ('The shipping address must contain either "customer_address_id" or "address". ' )
@@ -69,18 +64,7 @@ public function execute(ContextInterface $context, CartInterface $cart, array $s
6964 );
7065 }
7166
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 );
8468
8569 $ this ->assignShippingAddressToCart ->execute ($ cart , $ shippingAddress );
8670 }
0 commit comments