PluginProbe
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts / 2.2.7
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts v2.2.7
2.7.7 2.7.6 2.7.5 2.7.4 trunk 1.3 2.0.4 2.0.6 2.1.91 2.2.4 2.2.7 2.2.9 2.3.1 2.3.10 2.4.10 2.4.2 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.6.0 2.6.1 2.7.0 All 28 releases
← All changes | admin/includes/class.request.php +281 -287 2.4.42.2.7 View file →
@@ -1,287 +1,281 @@
1 -<?php
2 -/**
3 - * Woody Request class
4 - *
5 - * Contains methods for executing requests and processing responses.
6 - * Uses the WINP\JsonMapper\Mapper to convert the response to a convenient object.
7 - *
8 - * @author Webcraftic <wordpress.webraftic@gmail.com>
9 - * @copyright (c) 11.12.2018, Webcraftic
10 - * @version 1.0
11 - */
12 -
13 -// Exit if accessed directly
14 -if ( ! defined( 'ABSPATH' ) ) {
15 - exit;
16 -}
17 -
18 -class WINP_Request {
19 - //В новых версиях Вуди начиная с 2.2.10 будет обращаться к новой версии API библиотеки сниппетов
20 - // это делается для обратной совместимости, чтобы старые версии продолжили работать со старым API
21 - //const WINP_REQUEST_URL = 'http://185.75.88.217/v2/woody/'; //тестовая после переноса на другой сервер
22 - const WINP_REQUEST_URL = 'http://api.woodysnippet.com/v2/woody/';
23 - // Старое API http://142.93.91.206/v1/woody/
24 -
25 - /**
26 - * WINP_REQUEST constructor.
27 - */
28 - public function __construct() {
29 - require_once WINP_PLUGIN_DIR . '/includes/jsonmapper/class-json-mapper.php';
30 - require_once WINP_PLUGIN_DIR . '/includes/jsonmapper/exceptions/class-exception.php';
31 - }
32 -
33 - /**
34 - * Get license key
35 - *
36 - * @return string
37 - */
38 - private function get_key() {
39 - return WINP_Plugin::app()->premium->get_license()->get_key();
40 - }
41 -
42 - /**
43 - * Get license plugin_id
44 - *
45 - * @return string
46 - */
47 - private function get_plugin_id() {
48 - return WINP_Plugin::app()->premium->get_setting( 'plugin_id' );
49 - }
50 -
51 - /**
52 - * Get base64 token string
53 - *
54 - * @return string
55 - */
56 - private function get_token() {
57 - return base64_encode( $this->get_key() );
58 - }
59 -
60 - /**
61 - * Get headers
62 - *
63 - * @return array
64 - */
65 - private function get_headers() {
66 - return array(
67 - 'Authorization' => 'Bearer ' . $this->get_token(),
68 - 'PluginId' => $this->get_plugin_id(),
69 - );
70 - }
71 -
72 - /**
73 - * Check is key data available
74 - *
75 - * @return bool
76 - */
77 - public function is_key() {
78 - return WINP_Plugin::app()->premium->is_activate() && $this->get_key();
79 - }
80 -
81 - /**
82 - * Make POST request with authorization headers and return response
83 - *
84 - * @param string $point
85 - * @param array $args
86 - *
87 - * @return array|bool|WP_Error
88 - */
89 - public function post( $point, $args = array() ) {
90 - if ( ! $this->is_key() ) {
91 - return false;
92 - }
93 -
94 - $args['headers'] = $this->get_headers();
95 -
96 - return wp_remote_post( self::WINP_REQUEST_URL . $point, $args );
97 - }
98 -
99 - /**
100 - * Make GET request with authorization headers and return response
101 - *
102 - * @param string $point
103 - * @param array $args
104 - *
105 - * @return array|bool|WP_Error
106 - */
107 - public function get( $point, $args = array() ) {
108 - if ( ! $this->is_key() ) {
109 - return false;
110 - }
111 -
112 - $args['headers'] = $this->get_headers();
113 -
114 - return wp_remote_get( self::WINP_REQUEST_URL . $point, $args );
115 - }
116 -
117 - /**
118 - * Make PUT request with authorization headers and return response
119 - *
120 - * @param string $point
121 - * @param array $args
122 - *
123 - * @return array|bool|WP_Error
124 - */
125 - public function put( $point, $args = array() ) {
126 - if ( ! $this->is_key() ) {
127 - return false;
128 - }
129 -
130 - $args['method'] = Requests::PUT;
131 - $args['headers'] = $this->get_headers();
132 -
133 - return wp_remote_request( self::WINP_REQUEST_URL . $point, $args );
134 - }
135 -
136 - /**
137 - * Check response
138 - *
139 - * @param $response
140 - *
141 - * @return bool
142 - */
143 - public function check_response( $response ) {
144 - if ( empty( $response ) || $response instanceof WP_Error ) {
145 - return false;
146 - }
147 -
148 - if ( ! isset( $response['body'] ) || empty( $response['body'] ) ) {
149 - return false;
150 - }
151 -
152 - if ( 200 != $response['response']['code'] && 201 != $response['response']['code'] ) {
153 - return false;
154 - }
155 -
156 - return true;
157 - }
158 -
159 - /**
160 - * Check body
161 - *
162 - * @param $body
163 - *
164 - * @return bool
165 - */
166 - public function check_body( $body ) {
167 - if ( empty( $body ) ) {
168 - return false;
169 - }
170 -
171 - if ( ! is_array( $body ) && ! is_object( $body ) ) {
172 - return false;
173 - }
174 -
175 - return true;
176 - }
177 -
178 - /**
179 - * Get response text error
180 - *
181 - * @param $response
182 - *
183 - * @return string
184 - */
185 - public function get_response_error( $response ) {
186 - if ( empty( $response ) ) {
187 - return 'Empty response';
188 - }
189 -
190 - if ( $response instanceof WP_Error ) {
191 - return $response->get_error_message();
192 - }
193 -
194 - if ( is_array( $response ) ) {
195 - if ( ! isset( $response['body'] ) || empty( $response['body'] ) ) {
196 - return 'Empty body';
197 - }
198 -
199 - if ( 200 != $response['response']['code'] && 201 != $response['response']['code'] ) {
200 - return $response['response']['message'] . ' [Code: ' . $response['response']['code'] . ']';
201 - }
202 - }
203 -
204 - return 'Unknown error';
205 - }
206 -
207 - /**
208 - * Get mapped object by name
209 - *
210 - * @param $json
211 - * @param $object_name
212 - *
213 - * @return bool|mixed
214 - */
215 - public function map_object( $json, $object_name ) {
216 - if ( ! $this->check_response( $json ) ) {
217 - error_log( 'Snippet api [map_object]: ' . $this->get_response_error( $json ) );
218 -
219 - return false;
220 - }
221 -
222 - $body = json_decode( $json['body'] );
223 -
224 - if ( ! $this->check_body( $body ) ) {
225 - error_log( 'Snippet api [map_objects]: Wrong body' );
226 -
227 - return false;
228 - }
229 -
230 - $mapper = new WINP\JsonMapper\Mapper();
231 -
232 - $mapper->bExceptionOnUndefinedProperty = true;
233 - $mapper->bExceptionOnMissingData = true;
234 -
235 - try {
236 - return $mapper->map( $body, new $object_name() );
237 - } catch ( WINP\JsonMapper\Exception $exception ) {
238 - error_log( 'Snippet api [map_object]: ' . $exception->getMessage() );
239 -
240 - return false;
241 - }
242 - }
243 -
244 - /**
245 - * Get mapped objects by name
246 - *
247 - * @param $json
248 - * @param $object_name
249 - *
250 - * @return bool|mixed
251 - */
252 - public function map_objects( $json, $object_name ) {
253 - if ( ! $this->check_response( $json ) ) {
254 - error_log(
255 - 'Snippet api [map_objects]: ' . $this->get_response_error( $json )
256 - );
257 -
258 - return false;
259 - }
260 -
261 - $body = json_decode( $json['body'] );
262 -
263 - if ( ! $this->check_body( $body ) ) {
264 - error_log( 'Snippet api [map_objects]: Wrong body' );
265 -
266 - return false;
267 - }
268 -
269 - $mapper = new WINP\JsonMapper\Mapper();
270 -
271 - $mapper->bExceptionOnUndefinedProperty = true;
272 - $mapper->bExceptionOnMissingData = true;
273 -
274 - try {
275 - return $mapper->mapArray(
276 - $body,
277 - array(),
278 - $object_name
279 - );
280 - } catch ( WINP\JsonMapper\Exception $exception ) {
281 - error_log( 'Snippet api [map_objects]: ' . $exception->getMessage() );
282 -
283 - return false;
284 - }
285 - }
286 -
287 -}
1 +<?php
2 +/**
3 + * Woody Request class
4 + *
5 + * Contains methods for executing requests and processing responses.
6 + * Uses the WINP\JsonMapper\Mapper to convert the response to a convenient object.
7 + *
8 + * @author Webcraftic <wordpress.webraftic@gmail.com>
9 + * @copyright (c) 11.12.2018, Webcraftic
10 + * @version 1.0
11 + */
12 +
13 +// Exit if accessed directly
14 +if ( ! defined( 'ABSPATH' ) ) {
15 + exit;
16 +}
17 +
18 +class WINP_Request {
19 + const WINP_REQUEST_URL = 'http://142.93.91.206/v1/woody/';
20 +
21 + /**
22 + * WINP_REQUEST constructor.
23 + */
24 + public function __construct() {
25 + require_once WINP_PLUGIN_DIR . '/includes/jsonmapper/class-json-mapper.php';
26 + require_once WINP_PLUGIN_DIR . '/includes/jsonmapper/exceptions/class-exception.php';
27 + }
28 +
29 + /**
30 + * Get license key
31 + *
32 + * @return string
33 + */
34 + private function get_key() {
35 + return WINP_Plugin::app()->premium->get_license()->get_key();
36 + }
37 +
38 + /**
39 + * Get license plugin_id
40 + *
41 + * @return string
42 + */
43 + private function get_plugin_id() {
44 + return WINP_Plugin::app()->premium->get_setting( 'plugin_id' );
45 + }
46 +
47 + /**
48 + * Get base64 token string
49 + *
50 + * @return string
51 + */
52 + private function get_token() {
53 + return base64_encode( $this->get_key() );
54 + }
55 +
56 + /**
57 + * Get headers
58 + *
59 + * @return array
60 + */
61 + private function get_headers() {
62 + return array(
63 + 'Authorization' => 'Bearer ' . $this->get_token(),
64 + 'PluginId' => $this->get_plugin_id(),
65 + );
66 + }
67 +
68 + /**
69 + * Check is key data available
70 + *
71 + * @return bool
72 + */
73 + public function is_key() {
74 + return WINP_Plugin::app()->premium->is_activate() && $this->get_key();
75 + }
76 +
77 + /**
78 + * Make POST request with authorization headers and return response
79 + *
80 + * @param string $point
81 + * @param array $args
82 + *
83 + * @return array|bool|WP_Error
84 + */
85 + public function post( $point, $args = array() ) {
86 + if ( ! $this->is_key() ) {
87 + return false;
88 + }
89 +
90 + $args['headers'] = $this->get_headers();
91 +
92 + return wp_remote_post( self::WINP_REQUEST_URL . $point, $args );
93 + }
94 +
95 + /**
96 + * Make GET request with authorization headers and return response
97 + *
98 + * @param string $point
99 + * @param array $args
100 + *
101 + * @return array|bool|WP_Error
102 + */
103 + public function get( $point, $args = array() ) {
104 + if ( ! $this->is_key() ) {
105 + return false;
106 + }
107 +
108 + $args['headers'] = $this->get_headers();
109 +
110 + return wp_remote_get( self::WINP_REQUEST_URL . $point, $args );
111 + }
112 +
113 + /**
114 + * Make PUT request with authorization headers and return response
115 + *
116 + * @param string $point
117 + * @param array $args
118 + *
119 + * @return array|bool|WP_Error
120 + */
121 + public function put( $point, $args = array() ) {
122 + if ( ! $this->is_key() ) {
123 + return false;
124 + }
125 +
126 + $args['method'] = Requests::PUT;
127 + $args['headers'] = $this->get_headers();
128 +
129 + return wp_remote_request( self::WINP_REQUEST_URL . $point, $args );
130 + }
131 +
132 + /**
133 + * Check response
134 + *
135 + * @param $response
136 + *
137 + * @return bool
138 + */
139 + public function check_response( $response ) {
140 + if ( empty( $response ) || $response instanceof WP_Error ) {
141 + return false;
142 + }
143 +
144 + if ( ! isset( $response['body'] ) || empty( $response['body'] ) ) {
145 + return false;
146 + }
147 +
148 + if ( 200 != $response['response']['code'] && 201 != $response['response']['code'] ) {
149 + return false;
150 + }
151 +
152 + return true;
153 + }
154 +
155 + /**
156 + * Check body
157 + *
158 + * @param $body
159 + *
160 + * @return bool
161 + */
162 + public function check_body( $body ) {
163 + if ( empty( $body ) ) {
164 + return false;
165 + }
166 +
167 + if ( ! is_array( $body ) && ! is_object( $body ) ) {
168 + return false;
169 + }
170 +
171 + return true;
172 + }
173 +
174 + /**
175 + * Get response text error
176 + *
177 + * @param $response
178 + *
179 + * @return string
180 + */
181 + public function get_response_error( $response ) {
182 + if ( empty( $response ) ) {
183 + return 'Empty response';
184 + }
185 +
186 + if ( $response instanceof WP_Error ) {
187 + return $response->get_error_message();
188 + }
189 +
190 + if ( is_array( $response ) ) {
191 + if ( ! isset( $response['body'] ) || empty( $response['body'] ) ) {
192 + return 'Empty body';
193 + }
194 +
195 + if ( 200 != $response['response']['code'] && 201 != $response['response']['code'] ) {
196 + return $response['response']['message'] . ' [Code: ' . $response['response']['code'] . ']';
197 + }
198 + }
199 +
200 + return 'Unknown error';
201 + }
202 +
203 + /**
204 + * Get mapped object by name
205 + *
206 + * @param $json
207 + * @param $object_name
208 + *
209 + * @return bool|mixed
210 + */
211 + public function map_object( $json, $object_name ) {
212 + if ( ! $this->check_response( $json ) ) {
213 + error_log( 'Snippet api [map_object]: ' . $this->get_response_error( $json ) );
214 +
215 + return false;
216 + }
217 +
218 + $body = json_decode( $json['body'] );
219 +
220 + if ( ! $this->check_body( $body ) ) {
221 + error_log( 'Snippet api [map_objects]: Wrong body' );
222 +
223 + return false;
224 + }
225 +
226 + $mapper = new WINP\JsonMapper\Mapper();
227 +
228 + $mapper->bExceptionOnUndefinedProperty = true;
229 + $mapper->bExceptionOnMissingData = true;
230 +
231 + try {
232 + return $mapper->map( $body, new $object_name() );
233 + } catch ( WINP\JsonMapper\Exception $exception ) {
234 + error_log( 'Snippet api [map_object]: ' . $exception->getMessage() );
235 + return false;
236 + }
237 + }
238 +
239 + /**
240 + * Get mapped objects by name
241 + *
242 + * @param $json
243 + * @param $object_name
244 + *
245 + * @return bool|mixed
246 + */
247 + public function map_objects( $json, $object_name ) {
248 + if ( ! $this->check_response( $json ) ) {
249 + error_log(
250 + 'Snippet api [map_objects]: ' . $this->get_response_error( $json )
251 + );
252 +
253 + return false;
254 + }
255 +
256 + $body = json_decode( $json['body'] );
257 +
258 + if ( ! $this->check_body( $body ) ) {
259 + error_log( 'Snippet api [map_objects]: Wrong body' );
260 +
261 + return false;
262 + }
263 +
264 + $mapper = new WINP\JsonMapper\Mapper();
265 +
266 + $mapper->bExceptionOnUndefinedProperty = true;
267 + $mapper->bExceptionOnMissingData = true;
268 +
269 + try {
270 + return $mapper->mapArray(
271 + $body,
272 + array(),
273 + $object_name
274 + );
275 + } catch ( WINP\JsonMapper\Exception $exception ) {
276 + error_log( 'Snippet api [map_objects]: ' . $exception->getMessage() );
277 + return false;
278 + }
279 + }
280 +
281 +}