PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.6
GiveWP – Donation Plugin and Fundraising Platform v4.14.6
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 9 months ago
ConnectClient.php
129 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 sprintf(
118 esc_html__(
119 'The request to the %1$s failed. Error: %2$s',
120 'give'
121 ),
122 $this->apiUrl,
123 $response->get_error_message()
124 )
125 );
126 }
127 }
128 }
129