PluginProbe
seQura / 4.3.0
seQura v4.3.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
← All changes | src/Controllers/Rest/class-rest-controller.php +27 -0 4.0.04.3.0 View file →
@@ -7,11 +7,15 @@
7 7 */
8 8
9 9 namespace SeQura\WC\Controllers\Rest;
10 10
11 +use SeQura\Core\BusinessLogic\AdminAPI\Response\Response;
11 12 use SeQura\Core\Infrastructure\Utility\RegexProvider;
12 13 use SeQura\WC\Services\Log\Interface_Logger_Service;
14 +use WP;
15 +use WP_Error;
13 16 use WP_REST_Request;
17 +use WP_REST_Response;
14 18
15 19 /**
16 20 * Helper for REST Controllers
17 21 */
@@ -306,6 +310,29 @@
306 310 return '(?P<' . $param_name . '>[\w]+)';
307 311 default:
308 312 return '';
309 313 }
314 + }
315 +
316 + /**
317 + * Build a valid response for the REST API
318 + *
319 + * @return WP_REST_Response|WP_Error
320 + */
321 + protected function build_response( Response $response ) {
322 + return $this->build_response_from_array( $response->toArray(), $response->isSuccessful() );
323 + }
324 +
325 + /**
326 + * Build a valid response for the REST API from an array
327 + *
328 + * @return WP_REST_Response|WP_Error
329 + */
330 + protected function build_response_from_array( array $response_array, bool $is_successful ) {
331 + if ( ! $is_successful ) {
332 + $code = strval( $response_array['statusCode'] ?? '500' );
333 + $message = strval( $response_array['errorMessage'] ?? 'Unknown error' );
334 + return new WP_Error( $code, $message );
335 + }
336 + return \rest_ensure_response( $response_array );
310 337 }
311 338 }