Skip to content

feat: Implements refund mutations #906

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: develop
Choose a base branch
from
Draft
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
2 changes: 2 additions & 0 deletions includes/class-type-registry.php
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,8 @@
Mutation\Order_Update::register_mutation();
Mutation\Order_Delete::register_mutation();
Mutation\Order_Delete_Items::register_mutation();
Mutation\Refund_Create::register_mutation();
Mutation\Refund_Delete::register_mutation();

Check failure on line 181 in includes/class-type-registry.php

View workflow job for this annotation

GitHub Actions / Testing WooGraphQL code quality w/ PHPStan

Call to static method register_mutation() on an unknown class WPGraphQL\WooCommerce\Mutation\Refund_Delete.
Mutation\Checkout::register_mutation();
Mutation\Review_Write::register_mutation();
Mutation\Review_Update::register_mutation();
Expand Down
2 changes: 2 additions & 0 deletions includes/class-wp-graphql-woocommerce.php
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,8 @@ private function includes() {
require $include_directory_path . 'mutation/class-order-delete-items.php';
require $include_directory_path . 'mutation/class-order-delete.php';
require $include_directory_path . 'mutation/class-order-update.php';
require $include_directory_path . 'mutation/class-refund-create.php';
require $include_directory_path . 'mutation/class-refund-delete.php';
require $include_directory_path . 'mutation/class-review-write.php';
require $include_directory_path . 'mutation/class-review-delete-restore.php';
require $include_directory_path . 'mutation/class-review-update.php';
Expand Down
68 changes: 68 additions & 0 deletions includes/mutation/class-refund-create.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<?php
/**
* Mutation - createRefund
*
* Registers mutation for creating a refund on an order.
*
* @package WPGraphQL\WooCommerce\Mutation
* @since TDB
*/

namespace WPGraphQL\WooCommerce\Mutation;

use GraphQL\Error\UserError;
use GraphQL\Type\Definition\ResolveInfo;
use WC_Order_Factory;
use WPGraphQL\AppContext;
use WPGraphQL\WooCommerce\Data\Mutation\Order_Mutation;
use WPGraphQL\WooCommerce\Model\Order;

/**
* Class Refund_Create
*/
class Refund_Create {
/**
* Registers mutation
*
* @return void
*/
public static function register_mutation() {
register_graphql_mutation(
'createRefund',
[
'inputFields' => self::get_input_fields(),
'outputFields' => self::get_output_fields(),
'mutateAndGetPayload' => self::mutate_and_get_payload(),
]
);
}

/**
* Defines the mutation input field configuration
*
* @return array
*/
public static function get_input_fields() {
return [];
}

/**
* Defines the mutation output field configuration
*
* @return array
*/
public static function get_output_fields() {
return [];
}

/**
* Defines the mutation data modification closure.
*
* @return callable
*/
public static function mutate_and_get_payload() {
return static function ( $input, AppContext $context, ResolveInfo $info ) {
return [ 'id' => 0 ];
};
}
}
68 changes: 68 additions & 0 deletions includes/mutation/class-refund-delete-php
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<?php
/**
* Mutation - deleteRefund
*
* Registers mutation for delete a refund on an order.
*
* @package WPGraphQL\WooCommerce\Mutation
* @since TDB
*/

namespace WPGraphQL\WooCommerce\Mutation;

use GraphQL\Error\UserError;
use GraphQL\Type\Definition\ResolveInfo;
use WC_Order_Factory;
use WPGraphQL\AppContext;
use WPGraphQL\WooCommerce\Data\Mutation\Order_Mutation;
use WPGraphQL\WooCommerce\Model\Order;

/**
* Class Refund_Delete
*/
class Refund_Delete {
/**
* Registers mutation
*
* @return void
*/
public static function register_mutation() {
register_graphql_mutation(
'deleteRefund',
[
'inputFields' => self::get_input_fields(),
'outputFields' => self::get_output_fields(),
'mutateAndGetPayload' => self::mutate_and_get_payload(),
]
);
}

/**
* Defines the mutation input field configuration
*
* @return array
*/
public static function get_input_fields() {
return [];
}

/**
* Defines the mutation output field configuration
*
* @return array
*/
public static function get_output_fields() {
return [];
}

/**
* Defines the mutation data modification closure.
*
* @return callable
*/
public static function mutate_and_get_payload() {
return static function ( $input, AppContext $context, ResolveInfo $info ) {
return [ 'id' => 0 ];
};
}
}
11 changes: 11 additions & 0 deletions tests/wpunit/RefundMutationsTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

class RefundMutationsTest extends \Tests\WPGraphQL\WooCommerce\TestCase\WooGraphQLTestCase {
public function testCreateRefundMutation() {
$this->markTestIncomplete();
}

public function testDeleteRefundMutation() {
$this->markTestIncomplete();
}
}
Loading