PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.4
GiveWP – Donation Plugin and Fundraising Platform v3.19.4
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 / DonationForms / Routes / ValidationRoute.php
give / src / DonationForms / Routes Last commit date
AuthenticationRoute.php 2 years ago DonateRoute.php 1 year ago DonateRouteSignature.php 2 years ago ValidationRoute.php 2 years ago
ValidationRoute.php
79 lines
1 <?php
2
3 namespace Give\DonationForms\Routes;
4
5
6 use Give\DonationForms\DataTransferObjects\DonateRouteData;
7 use Give\DonationForms\DataTransferObjects\ValidationRouteData;
8 use Give\DonationForms\Exceptions\DonationFormFieldErrorsException;
9 use Give\DonationForms\ValueObjects\DonationFormErrorTypes;
10 use Give\Framework\PaymentGateways\Traits\HandleHttpResponses;
11 use Give\Log\Log;
12 use WP_Error;
13
14 /**
15 * @since 3.0.0
16 */
17 class ValidationRoute
18 {
19 use HandleHttpResponses;
20
21 /**
22 * @since 3.0.0
23 */
24 public function __invoke(array $request): bool
25 {
26 // create DTO from GET request
27 $routeData = DonateRouteData::fromRequest(give_clean($_GET));
28
29 // validate signature
30 $routeData->validateSignature();
31
32 // create DTO from POST request
33 $formData = ValidationRouteData::fromRequest($request);
34
35 try {
36 $response = $formData->validate();
37
38 $this->handleResponse($response);
39 } catch (DonationFormFieldErrorsException $exception) {
40 $type = DonationFormErrorTypes::VALIDATION;
41 $this->logError($type, $exception->getMessage(), $formData);
42 $this->sendJsonError($type, $exception->getError());
43 }
44
45 exit;
46 }
47
48 /**
49 * @since 3.0.0
50 */
51 private function logError(
52 string $type,
53 string $exceptionMessage,
54 ValidationRouteData $formData
55 ) {
56 Log::error(
57 "Donation Route Error: $type",
58 [
59 'error_type' => $type,
60 'exceptionMessage' => $exceptionMessage,
61 'formData' => $formData->toArray(),
62 ]
63 );
64 }
65
66 /**
67 * @param string $type
68 * @param array|string|WP_Error $errors
69 * @return void
70 */
71 protected function sendJsonError(string $type, WP_Error $errors)
72 {
73 wp_send_json_error([
74 'type' => $type,
75 'errors' => $errors,
76 ]);
77 }
78 }
79