PluginProbe
The Innovative Form Builder – IvyForms / 0.9.1
The Innovative Form Builder – IvyForms v0.9.1
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 / Entry / Entry.php

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

141 lines 4.6 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\Entry;
4
5 // phpcs:disable PSR1.Files.SideEffects
6 if (!defined('ABSPATH')) {
7 exit; // Exit if accessed directly
8 }
9
10 use IvyForms\Vendor\DI\Container;
11 use IvyForms\Vendor\DI\DependencyException;
12 use IvyForms\Vendor\DI\NotFoundException;
13 use IvyForms\Controllers\Entry\AddEntryController;
14 use IvyForms\Controllers\Entry\BulkUpdateEntryController;
15 use IvyForms\Controllers\Entry\DeleteEntriesController;
16 use IvyForms\Controllers\Entry\DeleteEntryController;
17 use IvyForms\Controllers\Entry\GetEntryController;
18 use IvyForms\Controllers\Entry\GetEntryCountController;
19 use IvyForms\Controllers\Entry\SearchEntriesController;
20 use IvyForms\Controllers\Entry\UpdateEntryStarredController;
21 use IvyForms\Controllers\Entry\UpdateEntryStatusController;
22 use WP_REST_Server;
23
24 class Entry
25 {
26 /**
27 * @throws DependencyException
28 * @throws NotFoundException
29 */
30 public static function registerRoutes(Container $container, string $routeNamespace): void
31 {
32 // TODO - Add IvyForms capability - Admin only for now
33 register_rest_route(
34 $routeNamespace,
35 '/entry/(?P<id>\d+)',
36 [
37 'methods' => WP_REST_Server::READABLE,
38 'callback' => $container->get(GetEntryController::class),
39 'permission_callback' => function () {
40 return current_user_can('manage_options');
41 }
42 ]
43 );
44
45 register_rest_route(
46 $routeNamespace,
47 '/entry/add/',
48 [
49 'methods' => WP_REST_Server::CREATABLE,
50 'callback' => $container->get(AddEntryController::class),
51 'permission_callback' => function () {
52 return current_user_can('manage_options');
53 }
54 ]
55 );
56
57 register_rest_route(
58 $routeNamespace,
59 '/entries/search',
60 [
61 'methods' => WP_REST_Server::READABLE,
62 'callback' => $container->get(SearchEntriesController::class),
63 'permission_callback' => function () {
64 return current_user_can('manage_options');
65 }
66 ]
67 );
68
69 register_rest_route(
70 $routeNamespace,
71 '/entries/delete',
72 [
73 'methods' => WP_REST_Server::CREATABLE,
74 'callback' => $container->get(DeleteEntriesController::class),
75 'permission_callback' => function () {
76 return current_user_can('manage_options');
77 }
78 ]
79 );
80 register_rest_route(
81 $routeNamespace,
82 '/entry/delete/(?P<id>\d+)',
83 [
84 'methods' => WP_REST_Server::CREATABLE,
85 'callback' => $container->get(DeleteEntryController::class),
86 'permission_callback' => function () {
87 return current_user_can('manage_options');
88 }
89 ]
90 );
91
92 register_rest_route(
93 $routeNamespace,
94 '/entry/update/starred/(?P<id>\d+)',
95 [
96 'methods' => WP_REST_Server::CREATABLE,
97 'callback' => $container->get(UpdateEntryStarredController::class),
98 'permission_callback' => function () {
99 return current_user_can('manage_options');
100 }
101 ]
102 );
103
104 register_rest_route(
105 $routeNamespace,
106 '/entry/update/status/(?P<id>\d+)',
107 [
108 'methods' => WP_REST_Server::CREATABLE,
109 'callback' => $container->get(UpdateEntryStatusController::class),
110 'permission_callback' => function () {
111 return current_user_can('manage_options');
112 }
113 ]
114 );
115
116 register_rest_route(
117 $routeNamespace,
118 '/entries/count',
119 [
120 'methods' => WP_REST_Server::READABLE,
121 'callback' => $container->get(GetEntryCountController::class),
122 'permission_callback' => function () {
123 return current_user_can('manage_options');
124 }
125 ]
126 );
127
128 register_rest_route(
129 $routeNamespace,
130 '/entries/batch-actions',
131 [
132 'methods' => WP_REST_Server::CREATABLE,
133 'callback' => [$container->get(BulkUpdateEntryController::class), 'handle'],
134 'permission_callback' => function () {
135 return current_user_can('manage_options');
136 }
137 ]
138 );
139 }
140 }
141