PluginProbe
seQura / 4.0.0
seQura v4.0.0
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.0.0, at src/Controllers/Rest/class-payment-rest-controller.php

108 lines 3.0 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\Infrastructure\Utility\RegexProvider;
16 use WP_Error;
17 use WP_REST_Request;
18 use WP_REST_Response;
19
20 /**
21 * REST Payment Controller
22 */
23 class Payment_REST_Controller extends REST_Controller {
24
25 /**
26 * Constructor.
27 *
28 * @param string $rest_namespace The namespace.
29 * @param Interface_Logger_Service $logger The logger service.
30 * @param RegexProvider $regex The regex provider.
31 */
32 public function __construct(
33 $rest_namespace,
34 Interface_Logger_Service $logger,
35 RegexProvider $regex
36 ) {
37 parent::__construct( $logger, $regex );
38 $this->namespace = $rest_namespace;
39 $this->rest_base = '/payment';
40 }
41
42 /**
43 * Register the API endpoints.
44 *
45 * @return void
46 */
47 public function register_routes() {
48 $this->logger->log_debug( 'Hook executed', __FUNCTION__, __CLASS__ );
49 $data_store_id = array( self::PARAM_STORE_ID => $this->get_arg_string() );
50 $data_methods = array_merge(
51 $data_store_id,
52 array( self::PARAM_MERCHANT_ID => $this->get_arg_string() )
53 );
54
55 $store_id = $this->url_param_pattern( self::PARAM_STORE_ID );
56 $merchant_id = $this->url_param_pattern( self::PARAM_MERCHANT_ID );
57
58 $this->register_get( "methods/{$store_id}/{$merchant_id}", 'get_methods', $data_methods );
59 $this->register_get( "methods/{$store_id}", 'get_all_methods', $data_store_id );
60 }
61
62 /**
63 * Get payment methods.
64 *
65 * @param WP_REST_Request $request The request.
66 *
67 * @return WP_REST_Response|WP_Error
68 */
69 public function get_methods( WP_REST_Request $request ) {
70 $response = null;
71 try {
72 $response = AdminAPI::get()
73 ->paymentMethods( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
74 ->getPaymentMethods(
75 new GetPaymentMethodsRequest( strval( $request->get_param( self::PARAM_MERCHANT_ID ) ), true )
76 )
77 ->toArray();
78 } catch ( \Throwable $e ) {
79 $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
80 $response = new WP_Error( 'error', $e->getMessage() );
81 }
82 return \rest_ensure_response( $response );
83 }
84
85 /**
86 * Get all payment methods.
87 *
88 * @param WP_REST_Request $request The request.
89 *
90 * @return WP_REST_Response|WP_Error
91 */
92 public function get_all_methods( WP_REST_Request $request ) {
93 $response = null;
94 try {
95 $response = AdminAPI::get()
96 ->paymentMethods( strval( $request->get_param( self::PARAM_STORE_ID ) ) )
97 ->getAllAvailablePaymentMethods(
98 new GetFormattedPaymentMethodsRequest( true )
99 )
100 ->toArray();
101 } catch ( \Throwable $e ) {
102 $this->logger->log_throwable( $e, __FUNCTION__, __CLASS__ );
103 $response = new WP_Error( 'error', $e->getMessage() );
104 }
105 return \rest_ensure_response( $response );
106 }
107 }
108