PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.31.0
GiveWP – Donation Plugin and Fundraising Platform v2.31.0
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / Http / ConnectServer / Client / ConnectClient.php
give / src / Framework / Http / ConnectServer / Client Last commit date
Exceptions 3 years ago ConnectClient.php 3 years ago
ConnectClient.php
128 lines
1 <?php
2
3 namespace Give\Framework\Http\ConnectServer\Client;
4
5 use Give\Framework\Http\ConnectServer\Client\Exceptions\RequestException;
6 use WP_Error;
7
8 /**
9 * Class ConnectClient
10 *
11 * @since 2.8.0
12 */
13 class ConnectClient
14 {
15 /**
16 * Api Url
17 *
18 * @since 2.8.0
19 *
20 * @var string
21 */
22 public $apiUrl;
23
24 /**
25 * @since 2.25.0
26 */
27 public function __construct($giveConnectUrl)
28 {
29 $this->apiUrl = $giveConnectUrl;
30 }
31
32 /**
33 * Get rest api endpoint url for requests.
34 *
35 * @since 2.25.0 Set default endpoint value as empty
36 * @since 2.8.0
37 *
38 * @param string $endpoint The route on the server. E.g: 'gateway-name/connect'
39 */
40 public function getApiUrl(string $endpoint = ''): string
41 {
42 if ( ! empty($endpoint)) {
43 return trailingslashit($this->apiUrl) . ltrim($endpoint, '/');
44 }
45
46 return $this->apiUrl;
47 }
48
49 /**
50 * @since 2.25.0
51 *
52 * @param string $endpoint The route on the server. E.g: 'gateway-name/connect'
53 * @param array $args Optional. Can contains 'headers' and 'body'
54 *
55 * @throws RequestException
56 */
57 public function get(string $endpoint, array $args = []): array
58 {
59 $url = $this->getApiUrl($endpoint);
60
61 $response = wp_remote_get($url, $args);
62
63 $this->validateWpErrorInResponse($response);
64
65 return $response;
66 }
67
68 /**
69 * @since 2.25.0
70 *
71 * @param string $endpoint The route on the server. E.g: 'gateway-name/connect'
72 * @param array $args Optional. Can contains 'headers' and 'body'
73 *
74 * @throws RequestException
75 */
76 public function post(string $endpoint, array $args = []): array
77 {
78 $url = $this->getApiUrl($endpoint);
79
80 $response = wp_remote_post($url, $args);
81
82 $this->validateWpErrorInResponse($response);
83
84 return $response;
85 }
86
87 /**
88 * @since 2.25.0
89 *
90 * @param string $endpoint The route on the server. E.g: 'gateway-name/connect'
91 * @param array $args Optional. Can contains 'method', 'headers' and 'body'
92 *
93 * @throws RequestException
94 */
95 public function request(string $endpoint, array $args = []): array
96 {
97 $url = $this->getApiUrl($endpoint);
98
99 $response = wp_remote_request($url, $args);
100
101 $this->validateWpErrorInResponse($response);
102
103 return $response;
104 }
105
106 /**
107 * @since 2.25.0
108 *
109 * @param array|WP_Error $response
110 *
111 * @throws RequestException
112 */
113 private function validateWpErrorInResponse($response)
114 {
115 if (is_wp_error($response)) {
116 throw new RequestException(
117 esc_html__(
118 sprintf(
119 'The request to the %1$s failed. Error: %2$s',
120 $this->apiUrl,
121 $response->get_error_message()
122 )
123 )
124 );
125 }
126 }
127 }
128