PluginProbe
The Innovative Form Builder – IvyForms / 0.2
The Innovative Form Builder – IvyForms v0.2
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
ivyforms / backend / src / Routes / Form / Form.php

Form.php in The Innovative Form Builder – IvyForms 0.2, at backend/src/Routes/Form/Form.php

176 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IvyForms\Routes\Form;
4
5 // phpcs:disable PSR1.Files.SideEffects
6 if (!defined('ABSPATH')) {
7 exit; // Exit if accessed directly
8 }
9
10 use DI\Container;
11 use DI\DependencyException;
12 use DI\NotFoundException;
13 use IvyForms\Controllers\Form\AddFormController;
14 use IvyForms\Controllers\Form\DeleteFormController;
15 use IvyForms\Controllers\Form\FormSubmissionController;
16 use IvyForms\Controllers\Form\DuplicateFormController;
17 use IvyForms\Controllers\Form\GetFormController;
18 use IvyForms\Controllers\Form\GetFormsController;
19 use IvyForms\Controllers\Form\SearchFormsController;
20 use IvyForms\Controllers\Form\UpdateFormController;
21 use IvyForms\Controllers\Form\DeleteFormsController;
22 use IvyForms\Controllers\Form\UpdateFormStarredController;
23 use IvyForms\Controllers\Form\UpdateFormStatusController;
24 use WP_REST_Server;
25
26 class Form
27 {
28 /**
29 * @throws DependencyException
30 * @throws NotFoundException
31 */
32 public static function registerRoutes(Container $container, string $routeNamespace): void
33 {
34 // TODO - Add IvyForms capability - Admin only for now
35 register_rest_route(
36 $routeNamespace,
37 '/form/(?P<id>\d+)',
38 [
39 'methods' => WP_REST_Server::READABLE,
40 'callback' => $container->get(GetFormController::class),
41 'permission_callback' => function () {
42 return current_user_can('manage_options');
43 }
44 ]
45 );
46
47 register_rest_route(
48 $routeNamespace,
49 '/form',
50 [
51 'methods' => WP_REST_Server::READABLE,
52 'callback' => $container->get(GetFormsController::class),
53 'permission_callback' => function () {
54 return current_user_can('manage_options');
55 }
56 ]
57 );
58
59 register_rest_route(
60 $routeNamespace,
61 '/forms/search',
62 [
63 'methods' => WP_REST_Server::READABLE,
64 'callback' => $container->get(SearchFormsController::class),
65 'args' => [
66 'page' => ['type' => 'integer'],
67 'perPage' => ['type' => 'integer'],
68 'search' => ['type' => 'string'],
69 'orderBy' => ['type' => 'string'],
70 'order' => ['type' => 'string'],
71 'shouldGetCount' => ['type' => 'boolean'],
72 ],
73 'permission_callback' => function () {
74 return current_user_can('manage_options');
75 }
76 ]
77 );
78
79 register_rest_route(
80 $routeNamespace,
81 '/form/add/',
82 [
83 'methods' => WP_REST_Server::CREATABLE,
84 'callback' => $container->get(AddFormController::class),
85 'permission_callback' => function () {
86 return current_user_can('manage_options');
87 }
88 ]
89 );
90
91 register_rest_route(
92 $routeNamespace,
93 '/form/update/(?P<id>\d+)',
94 [
95 'methods' => WP_REST_Server::CREATABLE,
96 'callback' => $container->get(UpdateFormController::class),
97 'permission_callback' => function () {
98 return current_user_can('manage_options');
99 }
100 ]
101 );
102
103 register_rest_route(
104 $routeNamespace,
105 '/form/update/starred/(?P<id>\d+)',
106 [
107 'methods' => WP_REST_Server::CREATABLE,
108 'callback' => $container->get(UpdateFormStarredController::class),
109 'permission_callback' => function () {
110 return current_user_can('manage_options');
111 }
112 ]
113 );
114
115 register_rest_route(
116 $routeNamespace,
117 '/form/update/status/(?P<id>\d+)',
118 [
119 'methods' => WP_REST_Server::CREATABLE,
120 'callback' => $container->get(UpdateFormStatusController::class),
121 'permission_callback' => function () {
122 return current_user_can('manage_options');
123 }
124 ]
125 );
126
127
128 register_rest_route(
129 $routeNamespace,
130 '/form/delete/(?P<id>\d+)',
131 [
132 'methods' => WP_REST_Server::CREATABLE,
133 'callback' => $container->get(DeleteFormController::class),
134 'permission_callback' => function () {
135 return current_user_can('manage_options');
136 }
137 ]
138 );
139
140 register_rest_route(
141 $routeNamespace,
142 '/forms/delete',
143 [
144 'methods' => WP_REST_Server::CREATABLE,
145 'callback' => $container->get(DeleteFormsController::class),
146 'permission_callback' => function () {
147 return current_user_can('manage_options');
148 }
149 ]
150 );
151
152 register_rest_route(
153 $routeNamespace,
154 '/form/submission/',
155 [
156 'methods' => WP_REST_Server::CREATABLE,
157 'callback' => $container->get(FormSubmissionController::class),
158 // TODO - Add IvyForms capability - Public use
159 'permission_callback' => '__return_true'
160 ]
161 );
162
163 register_rest_route(
164 $routeNamespace,
165 '/form/duplicate/(?P<id>\d+)',
166 [
167 'methods' => WP_REST_Server::CREATABLE,
168 'callback' => $container->get(DuplicateFormController::class),
169 'permission_callback' => function () {
170 return current_user_can('manage_options');
171 }
172 ]
173 );
174 }
175 }
176