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/Form/GetFormsController.php +68 -0 0.6.1 → 1.5 View file →
@@ -1,0 +1,68 @@
1 +<?php
2 +
3 +/**
4 + * @copyright © Melograno Venture Studio. All rights reserved.
5 + * @licence See COPYING.md for license details.
6 + */
7 +
8 +namespace IvyForms\Controllers\Form;
9 +
10 +use IvyForms\Common\Exceptions\ForbiddenException;
11 +use IvyForms\Common\Exceptions\InvalidArgumentException;
12 +use IvyForms\Common\Sanitizer\Sanitizer;
13 +use IvyForms\Controllers\Controller;
14 +use IvyForms\Services\Form\FormService;
15 +use IvyForms\Services\Permissions\AdminFormListPermissionService;
16 +use IvyForms\Services\Translations\BackendStrings;
17 +use WP_REST_Request;
18 +use WP_REST_Response;
19 +
20 +/**
21 + * Class GetFormsController
22 + *
23 + * @package IvyForms\Controllers\Form
24 + */
25 +class GetFormsController extends Controller
26 +{
27 + private FormService $formService;
28 +
29 + private AdminFormListPermissionService $adminFormListPermissionService;
30 +
31 + public function __construct(
32 + FormService $formService,
33 + AdminFormListPermissionService $adminFormListPermissionService
34 + ) {
35 + $this->formService = $formService;
36 + $this->adminFormListPermissionService = $adminFormListPermissionService;
37 + }
38 +
39 + /**
40 + * @param WP_REST_Request $data
41 + *
42 + * @return WP_REST_Response
43 + *
44 + * @throws ForbiddenException
45 + * @throws InvalidArgumentException
46 + */
47 + public function handle(WP_REST_Request $data): WP_REST_Response
48 + {
49 + // Verify the nonce
50 + Sanitizer::verifyNonce($data->get_header('X-WP-Nonce'));
51 +
52 + $formsArr = $this->formService->getAllForms() ?? [];
53 +
54 + $forms = [];
55 +
56 + foreach ($formsArr as $form) {
57 + if (!$this->adminFormListPermissionService->canAccessFormInAdminLists((int) $form->getId())) {
58 + continue;
59 + }
60 + $forms[] = $form->toArray();
61 + }
62 +
63 + return new WP_REST_Response([
64 + 'message' => BackendStrings::getCommonStrings()['ok'],
65 + $forms
66 + ], 200);
67 + }
68 +}