PluginProbe
The Innovative Form Builder – IvyForms / 1.5
The Innovative Form Builder – IvyForms v1.5
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
← All changes | backend/src/Controllers/Controller.php +23 -7 0.7 → 1.5 View file →
@@ -6,16 +6,13 @@
6 6 */
7 7
8 8 namespace IvyForms\Controllers;
9 9
10 -// phpcs:disable PSR1.Files.SideEffects
11 -if (!defined('ABSPATH')) {
12 - exit; // Exit if accessed directly
13 -}
14 -
15 10 use IvyForms\Common\Exceptions\InvalidArgumentException;
16 11 use IvyForms\Common\Exceptions\NotFoundException;
17 12 use IvyForms\Common\Exceptions\QueryExecutionException;
13 +use IvyForms\Common\Exceptions\ServiceUnavailableException;
14 +use IvyForms\Common\Exceptions\FieldValidationException;
18 15 use IvyForms\Common\Exceptions\ValidationException;
19 16 use IvyForms\Common\Exceptions\ForbiddenException;
20 17 use IvyForms\Services\Translations\BackendStrings;
21 18 use RuntimeException;
@@ -72,8 +69,17 @@
72 69 return new WP_REST_Response([
73 70 'message' => $e->getMessage(),
74 71 'data' => []
75 72 ], 404);
73 + } catch (ServiceUnavailableException $e) {
74 + if (defined('WP_DEBUG') && WP_DEBUG) {
75 + error_log('Error 503: ' . $e->getMessage());
76 + }
77 +
78 + return new WP_REST_Response([
79 + 'message' => $e->getMessage(),
80 + 'data' => []
81 + ], 503);
76 82 } catch (InvalidArgumentException $e) {
77 83 // Log errors
78 84 if (defined('WP_DEBUG') && WP_DEBUG) {
79 85 error_log('Error: ' . $e->getMessage());
@@ -90,11 +96,21 @@
90 96 error_log('Validation error: ' . $e->getMessage());
91 97 }
92 98 // Handle validation for data
93 99 // HTTP 422 Unprocessable Content
100 + $data = [];
101 + $fieldErrors = $e->getFieldErrors();
102 + if ($fieldErrors !== []) {
103 + if ($e instanceof FieldValidationException) {
104 + $data['field_errors'] = $fieldErrors;
105 + } else {
106 + $data['fieldErrors'] = $fieldErrors;
107 + }
108 + }
109 +
94 110 return new WP_REST_Response([
95 - 'message' => 'Validation error: ' . $e->getMessage(),
96 - 'data' => []
111 + 'message' => $e->getMessage(),
112 + 'data' => $data,
97 113 ], 422);
98 114 } catch (QueryExecutionException $e) {
99 115 // Log errors
100 116 if (defined('WP_DEBUG') && WP_DEBUG) {