PluginProbe
seQura / 4.1.1
seQura v4.1.1
4.3.4 4.3.3 4.3.2 4.3.1 trunk 2.0.0 2.0.10 2.0.11 2.0.12 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 3.0.0 3.0.2 3.0.5 3.0.6 3.0.7 3.1.0 3.1.1 3.2.0 3.2.1 3.2.2 4.0.0 All 30 releases
sequra / src / Controllers / Rest / class-payment-rest-controller.php

class-payment-rest-controller.php in seQura 4.1.1, at src/Controllers/Rest/class-payment-rest-controller.php

103 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * REST Payment Controller
4 *
5 * @package SeQura/WC
6 * @subpackage SeQura/WC/Controllers/Rest
7 */
8
9 namespace SeQura\WC\Controllers\Rest;
10
11 use SeQura\Core\BusinessLogic\AdminAPI\AdminAPI;
12 use SeQura\WC\Services\Log\Interface_Logger_Service;
13 use SeQura\Core\BusinessLogic\AdminAPI\PaymentMethods\Requests\GetFormattedPaymentMethodsRequest;
14 use SeQura\Core\BusinessLogic\AdminAPI\PaymentMethods\Requests\GetPaymentMethodsRequest;
15 use SeQura\Core\BusinessLogic\AdminAPI\Response\Response;
16 use SeQura\Core\Infrastructure\Utility\RegexProvider;
17 use WP_Error;
18 use WP_REST_Request;
19 use WP_REST_Response;
20
21 /**
22 * REST Payment Controller
23 */
24 class Payment_REST_Controller extends REST_Controller {
25
26 /**
27 * Constructor.
28 *
29 * @param string $rest_namespace The namespace.
30 * @param Interface_Logger_Service $logger The logger service.
31 * @param RegexProvider $regex The regex provider.
32 */
33 public function __construct(
34 $rest_namespace,
35 Interface_Logger_Service $logger,
36 RegexProvider $regex
37 ) {
38 parent::__construct( $logger, $regex );
39 $this->namespace = $rest_namespace;
40 $this->rest_base = '/payment';
41 }
42
43 /**
44 * Register the API endpoints.
45 *
46 * @return void
47 */
48 public function register_routes() {
49 $this->logger->log_debug( 'Hook executed', __FUNCTION__, __CLASS__ );
50 $data_store_id = array( self::PARAM_STORE_ID => $this->get_arg_string() );
51 $data_methods = array_merge(
52 $data_store_id,
53 array( self::PARAM_MERCHANT_ID => $this->get_arg_string() )
54 );
55
56 $store_id = $this->url_param_pattern( self::PARAM_STORE_ID );
57 $merchant_id = $this->url_param_pattern( self::PARAM_MERCHANT_ID );
58
59 $this->register_get( "methods/{$store_id}/{$merchant_id}", 'get_methods', $data_methods );
60 $this->register_get( "methods/{$store_id}", 'get_all_methods', $data_store_id );
61 }
62
63 /**
64 * Get payment methods.
65 *
66 * @param WP_REST_Request $request The request.
67 *
68 * @return WP_REST_Response|WP_Error
69 */
70 public function get_methods( WP_REST_Request $request ) {
71 /**
72 * Response
73 *
74 * @var Response $response */
75 $response = AdminAPI::get()
76 ->paymentMethods( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
77 ->getPaymentMethods(
78 new GetPaymentMethodsRequest( strval( $request->get_param( self::PARAM_MERCHANT_ID ) ), true )
79 );
80 return $this->build_response( $response );
81 }
82
83 /**
84 * Get all payment methods.
85 *
86 * @param WP_REST_Request $request The request.
87 *
88 * @return WP_REST_Response|WP_Error
89 */
90 public function get_all_methods( WP_REST_Request $request ) {
91 /**
92 * Response
93 *
94 * @var Response $response */
95 $response = AdminAPI::get()
96 ->paymentMethods( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
97 ->getAllAvailablePaymentMethods(
98 new GetFormattedPaymentMethodsRequest( true )
99 );
100 return $this->build_response( $response );
101 }
102 }
103