这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// mutation to update cart discount codes
const String updateCartDiscountCodesMutation = r'''
mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!], $country: CountryCode) @inContext(country: $country) {
mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!], $country: CountryCode, $reverse: Boolean!) @inContext(country: $country) {
cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {
cart {
id
Expand Down Expand Up @@ -75,7 +75,7 @@ mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!], $count
}
}
}
lines(first: 250, reverse: true) {
lines(first: 250, reverse: $reverse) {
edges {
cursor
node {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// mutation to add a line item to the cart
const String addLineItemToCartMutation = r'''
mutation cartLineItemAdd($country: CountryCode, $cartId: ID!, $lines: [CartLineInput!]!) @inContext(country: $country) {
mutation cartLineItemAdd($country: CountryCode, $cartId: ID!, $lines: [CartLineInput!]!, $reverse: Boolean!) @inContext(country: $country) {
cartLinesAdd(cartId: $cartId, lines: $lines) {
cart {
id
Expand Down Expand Up @@ -75,7 +75,7 @@ mutation cartLineItemAdd($country: CountryCode, $cartId: ID!, $lines: [CartLineI
}
}
}
lines(first: 250, reverse: true) {
lines(first: 250, reverse: $reverse) {
edges {
cursor
node {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// mutation to remove a line item from the cart
const String removeLineItemFromCartMutation = r'''
mutation cartLinesRemove($country: CountryCode, $cartId: ID!, $lineIds: [ID!]!) @inContext(country: $country) {
mutation cartLinesRemove($country: CountryCode, $cartId: ID!, $lineIds: [ID!]!, $reverse: Boolean!) @inContext(country: $country) {
cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {
cart {
id
Expand Down Expand Up @@ -75,7 +75,7 @@ mutation cartLinesRemove($country: CountryCode, $cartId: ID!, $lineIds: [ID!]!)
}
}
}
lines(first: 250, reverse: true) {
lines(first: 250, reverse: $reverse) {
edges {
cursor
node {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// mutation to update a line item in the cart
const String updateLineItemInCartMutation = r'''
mutation cartLinesUpdate($country: CountryCode, $cartId: ID!, $lines: [CartLineUpdateInput!]!) @inContext(country: $country) {
mutation cartLinesUpdate($country: CountryCode, $cartId: ID!, $lines: [CartLineUpdateInput!]!, $reverse: Boolean!) @inContext(country: $country) {
cartLinesUpdate(cartId: $cartId, lines: $lines) {
cart {
id
Expand Down Expand Up @@ -75,7 +75,7 @@ mutation cartLinesUpdate($country: CountryCode, $cartId: ID!, $lines: [CartLineU
}
}
}
lines(first: 250, reverse: true) {
lines(first: 250, reverse: $reverse) {
edges {
cursor
node {
Expand Down
5 changes: 3 additions & 2 deletions lib/graphql_operations/storefront/queries/get_cart_by_id.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// query to get cart by id
const String getCartByIdQuery = r'''
query cart($country: CountryCode, $id: ID!) @inContext(country: $country) {
query cart($country: CountryCode, $id: ID!, $reverse: Boolean!) @inContext(country: $country) {
cart(id: $id) {
id
checkoutUrl
Expand Down Expand Up @@ -74,7 +74,8 @@ query cart($country: CountryCode, $id: ID!) @inContext(country: $country) {
}
}
}
lines(first: 250, reverse: true) {
}
lines(first: 250, reverse: $reverse) {
edges {
cursor
node {
Expand Down
21 changes: 17 additions & 4 deletions lib/shopify/src/shopify_cart.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:shopify_flutter/graphql_operations/storefront/mutations/cart/cart_attributes_update_mutation.dart';
import 'package:shopify_flutter/graphql_operations/storefront/mutations/cart/cart_buyer_identity_update.dart';
import 'package:shopify_flutter/graphql_operations/storefront/mutations/cart/cart_create.dart';
Expand All @@ -8,7 +9,6 @@ import 'package:shopify_flutter/graphql_operations/storefront/mutations/cart/car
import 'package:shopify_flutter/graphql_operations/storefront/mutations/cart/cart_note_update.dart';
import 'package:shopify_flutter/graphql_operations/storefront/queries/get_cart_by_id.dart';
import 'package:shopify_flutter/mixins/src/shopify_error.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:shopify_flutter/models/src/cart/cart_model.dart';
import 'package:shopify_flutter/models/src/cart/inputs/attribute_input/attribute_input.dart';
import 'package:shopify_flutter/shopify/src/shopify_localization.dart';
Expand All @@ -27,18 +27,23 @@ class ShopifyCart with ShopifyError {
/// Returns a [Cart] object.
///
/// Returns the [Cart] object of the Cart with the [cartId].
Future<Cart> getCartById(String cartId) async {
Future<Cart?> getCartById(String cartId, {bool reverse = false}) async {
final cartById = WatchQueryOptions(
document: gql(getCartByIdQuery),
variables: {
'id': cartId,
'country': ShopifyLocalization.countryCode,
'reverse': reverse
},
fetchPolicy: ShopifyConfig.fetchPolicy,
);
QueryResult result = await _graphQLClient!.query(cartById);
checkForError(result);

if (result.data!['cart'] == null) {
return null;
}

return Cart.fromJson(result.data!['cart'] ?? const {});
}

Expand Down Expand Up @@ -68,6 +73,7 @@ class ShopifyCart with ShopifyError {
/// add line item to cart
Future<Cart> addLineItemsToCart({
required String cartId,
bool reverse = false,
required List<CartLineUpdateInput> cartLineInputs,
}) async {
final lineInputs = cartLineInputs.map((e) {
Expand All @@ -80,7 +86,8 @@ class ShopifyCart with ShopifyError {
variables: {
'cartId': cartId,
'lines': lineInputs,
'country': ShopifyLocalization.countryCode
'country': ShopifyLocalization.countryCode,
'reverse': reverse
},
);
QueryResult result = await _graphQLClient!.mutate(addLineItem);
Expand All @@ -94,13 +101,15 @@ class ShopifyCart with ShopifyError {
Future<Cart> removeLineItemsFromCart({
required String cartId,
required List<String> lineIds,
bool reverse = false,
}) async {
final MutationOptions removeLineItem = MutationOptions(
document: gql(removeLineItemFromCartMutation),
variables: {
'cartId': cartId,
'lineIds': lineIds,
'country': ShopifyLocalization.countryCode
'country': ShopifyLocalization.countryCode,
'reverse': reverse
},
);
QueryResult result = await _graphQLClient!.mutate(removeLineItem);
Expand All @@ -113,6 +122,7 @@ class ShopifyCart with ShopifyError {
/// update line items in cart
Future<Cart> updateLineItemsInCart({
required String cartId,
bool reverse = false,
required List<CartLineUpdateInput> cartLineInputs,
}) async {
final lineInputs = cartLineInputs.map((e) => e.toJson()).toList();
Expand All @@ -122,6 +132,7 @@ class ShopifyCart with ShopifyError {
'cartId': cartId,
'lines': lineInputs,
'country': ShopifyLocalization.countryCode,
'reverse': reverse
},
);
QueryResult result = await _graphQLClient!.mutate(updateLineItem);
Expand Down Expand Up @@ -155,13 +166,15 @@ class ShopifyCart with ShopifyError {
Future<Cart> updateCartDiscountCodes({
required String cartId,
required List<String> discountCodes,
bool reverse = false,
}) async {
final MutationOptions updateDiscountCodes = MutationOptions(
document: gql(updateCartDiscountCodesMutation),
variables: {
'cartId': cartId,
'discountCodes': discountCodes,
'country': ShopifyLocalization.countryCode,
'reverse': reverse
},
);
QueryResult result = await _graphQLClient!.mutate(updateDiscountCodes);
Expand Down