getCartForUser = $getCartForUser; $this->setShippingMethodsOnCart = $setShippingMethodsOnCart; $this->checkCartCheckoutAllowance = $checkCartCheckoutAllowance; } /** * @inheritdoc */ public function resolve(Field $field, $context, ResolveInfo $info, array $value = null, array $args = null) { if (empty($args['input']['cart_id'])) { throw new GraphQlInputException(__('Required parameter "cart_id" is missing')); } $maskedCartId = $args['input']['cart_id']; if (empty($args['input']['shipping_methods'])) { throw new GraphQlInputException(__('Required parameter "shipping_methods" is missing')); } $shippingMethods = $args['input']['shipping_methods']; $storeId = (int)$context->getExtensionAttributes()->getStore()->getId(); $cart = $this->getCartForUser->execute($maskedCartId, $context->getUserId(), $storeId); $this->checkCartCheckoutAllowance->execute($cart); $this->setShippingMethodsOnCart->execute($context, $cart, $shippingMethods); return [ 'cart' => [ 'model' => $cart, ], ]; } }