PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.15.5
GiveWP – Donation Plugin and Fundraising Platform v4.15.5
4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 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 All 255 releases
give / src / FormBuilder / Routes / RegisterFormBuilderRestRoutes.php

RegisterFormBuilderRestRoutes.php in GiveWP – Donation Plugin and Fundraising Platform 4.15.5, at src/FormBuilder/Routes/RegisterFormBuilderRestRoutes.php

97 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\FormBuilder\Routes;
4
5 use Give\FormBuilder\Controllers\FormBuilderResourceController;
6 use Give\FormBuilder\ValueObjects\FormBuilderRestRouteConfig;
7 use Give\Framework\Permissions\Facades\UserPermissions;
8 use WP_REST_Request;
9 use WP_REST_Server;
10
11 class RegisterFormBuilderRestRoutes
12 {
13 /**
14 * @var FormBuilderResourceController
15 */
16 protected $formBuilderResourceController;
17
18 /**
19 * @since 3.0.0
20 */
21 public function __construct(
22 FormBuilderResourceController $formBuilderResourceController
23 ) {
24 $this->formBuilderResourceController = $formBuilderResourceController;
25 }
26
27 /**
28 * @since 3.0.0
29 *
30 * @return void
31 */
32 public function __invoke()
33 {
34 $this->registerGetForm(FormBuilderRestRouteConfig::NAMESPACE, FormBuilderRestRouteConfig::PATH);
35 $this->registerPostForm(FormBuilderRestRouteConfig::NAMESPACE, FormBuilderRestRouteConfig::PATH);
36 }
37
38 /**
39 * Get Request
40 *
41 * @since 4.14.0 replace permission callback logic with UserPermissions facade
42 * @since 4.3.2 update capability to add edit_give_forms
43 * @since 3.0.0
44 *
45 * @return void
46 */
47 public function registerGetForm(string $namespace, string $route)
48 {
49 register_rest_route($namespace, $route, [
50 'methods' => WP_REST_Server::READABLE,
51 'callback' => function (WP_REST_Request $request) {
52 return $this->formBuilderResourceController->show($request);
53 },
54 'permission_callback' => function () {
55 return UserPermissions::donationForms()->canEdit();
56 },
57 'args' => [
58 'id' => [
59 'type' => 'integer',
60 'sanitize_callback' => 'absint',
61 ],
62 ],
63 ]);
64 }
65
66 /**
67 * Post Request
68 *
69 * @since 4.14.0 replace permission callback logic with UserPermissions facade
70 * @since 4.3.2 update capability to add edit_give_forms
71 * @since 3.0.0
72 *
73 * @return void
74 */
75 public function registerPostForm(string $namespace, string $route)
76 {
77 register_rest_route($namespace, $route, [
78 'methods' => WP_REST_Server::CREATABLE,
79 'callback' => function (WP_REST_Request $request) {
80 return $this->formBuilderResourceController->update($request);
81 },
82 'permission_callback' => function () {
83 return UserPermissions::donationForms()->canEdit();
84 },
85 'args' => [
86 'id' => [
87 'type' => 'integer',
88 'sanitize_callback' => 'absint',
89 ],
90 'blocks' => [
91 'type' => 'string',
92 ],
93 ],
94 ]);
95 }
96 }
97