Skip to content

Commit d301e57

Browse files
committed
"cart" field add to mutation output.
1 parent 49bf1ab commit d301e57

9 files changed

+27
-24
lines changed

includes/data/mutation/class-cart-mutation.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,25 @@
1414
* Class - Cart_Mutation
1515
*/
1616
class Cart_Mutation {
17+
/**
18+
* Retrieve `cart` output field defintion
19+
*
20+
* @param bool $fallback Should cart be retrieved, if not provided in payload.
21+
* @return array
22+
*/
23+
public static function get_cart_field( $fallback = false ) {
24+
return array(
25+
'type' => 'Cart',
26+
'resolve' => function ( $payload ) use ( $fallback ) {
27+
$cart = ! empty( $payload['cart'] ) ? $payload['cart'] : null;
28+
if ( is_null( $cart ) && $fallback ) {
29+
$cart = \WC()->cart;
30+
}
31+
return $cart;
32+
},
33+
);
34+
}
35+
1736
/**
1837
* Returns a cart item.
1938
*

includes/mutation/class-cart-add-fee.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public static function get_output_fields() {
7575
return $fees[ $payload['id'] ];
7676
},
7777
),
78+
'cart' => Cart_Mutation::get_cart_field( true ),
7879
);
7980
}
8081

includes/mutation/class-cart-add-item.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public static function get_output_fields() {
8080
return $item;
8181
},
8282
),
83+
'cart' => Cart_Mutation::get_cart_field( true ),
8384
);
8485
}
8586

includes/mutation/class-cart-apply-coupon.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,7 @@ public static function get_input_fields() {
5656
*/
5757
public static function get_output_fields() {
5858
return array(
59-
'cart' => array(
60-
'type' => 'Cart',
61-
'resolve' => function ( $payload ) {
62-
return $payload['cart'];
63-
},
64-
),
59+
'cart' => Cart_Mutation::get_cart_field(),
6560
);
6661
}
6762

includes/mutation/class-cart-empty.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,7 @@ public static function register_mutation() {
4040
*/
4141
public static function get_output_fields() {
4242
return array(
43-
'cart' => array(
44-
'type' => 'Cart',
45-
'resolve' => function ( $payload ) {
46-
return $payload['cart'];
47-
},
48-
),
43+
'cart' => Cart_Mutation::get_cart_field(),
4944
);
5045
}
5146

includes/mutation/class-cart-remove-coupons.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,7 @@ public static function get_input_fields() {
5656
*/
5757
public static function get_output_fields() {
5858
return array(
59-
'cart' => array(
60-
'type' => 'Cart',
61-
'resolve' => function ( $payload ) {
62-
return $payload['cart'];
63-
},
64-
),
59+
'cart' => Cart_Mutation::get_cart_field(),
6560
);
6661
}
6762

includes/mutation/class-cart-remove-items.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public static function get_output_fields() {
6666
return $payload['items'];
6767
},
6868
),
69+
'cart' => Cart_Mutation::get_cart_field( true ),
6970
);
7071
}
7172

includes/mutation/class-cart-update-item-quantities.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public static function get_output_fields() {
8282
return array_merge( $updated, $payload['removed'] );
8383
},
8484
),
85+
'cart' => Cart_Mutation::get_cart_field( true ),
8586
);
8687
}
8788

includes/mutation/class-cart-update-shipping-method.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,7 @@ public static function get_input_fields() {
5353
*/
5454
public static function get_output_fields() {
5555
return array(
56-
'cart' => array(
57-
'type' => 'Cart',
58-
'resolve' => function () {
59-
return \WC()->cart;
60-
},
61-
),
56+
'cart' => Cart_Mutation::get_cart_field( true ),
6257
);
6358
}
6459

0 commit comments

Comments
 (0)