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
ivyforms / backend / src / Routes / Integrations / Integrations.php

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

75 lines 2.3 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\Integrations;
4
5 use IvyForms\Services\Permissions\IvyFormsAccess;
6 use IvyForms\Vendor\DI\Container;
7 use IvyForms\Vendor\DI\DependencyException;
8 use IvyForms\Vendor\DI\NotFoundException;
9 use IvyForms\Controllers\Integrations\InstallPluginController;
10 use IvyForms\Controllers\Integration\GetAllIntegrationsController;
11 use IvyForms\Controllers\Integration\GetIntegrationController;
12
13 /**
14 * Class Integrations
15 *
16 * Registers REST API routes for integrations
17 *
18 * @package IvyForms\Routes\Integrations
19 */
20 class Integrations
21 {
22 /**
23 * Register integrations routes
24 *
25 * @param Container $container
26 * @param string $routeNamespace
27 *
28 * @throws DependencyException
29 * @throws NotFoundException
30 */
31 public static function registerRoutes(Container $container, string $routeNamespace): void
32 {
33 // Get all integrations
34 register_rest_route(
35 $routeNamespace,
36 '/integrations',
37 [
38 'methods' => 'GET',
39 'callback' => $container->get(GetAllIntegrationsController::class),
40 'permission_callback' => function () {
41 return IvyFormsAccess::canAccessPluginAdminRoutes();
42 },
43 ]
44 );
45
46 // Get single integration
47 register_rest_route(
48 $routeNamespace,
49 '/integrations/(?P<slug>[a-zA-Z0-9_-]+)',
50 [
51 'methods' => 'GET',
52 'callback' => $container->get(GetIntegrationController::class),
53 'permission_callback' => function () {
54 return IvyFormsAccess::canAccessPluginAdminRoutes();
55 },
56 ]
57 );
58
59 // Install plugin endpoint
60 register_rest_route(
61 $routeNamespace,
62 '/integrations/install-plugin',
63 [
64 'methods' => 'POST',
65 'callback' => [$container->get(InstallPluginController::class), 'install'],
66 'permission_callback' => function () {
67 return IvyFormsAccess::canAccessPluginAdminRoutes()
68 && current_user_can('install_plugins')
69 && current_user_can('activate_plugins');
70 },
71 ]
72 );
73 }
74 }
75