# ivyforms/1.5.1/backend/src/Routes/Integrations/Integrations.php

The Innovative Form Builder – IvyForms, version 1.5.1. 75 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/1.5.1/code/backend/src/Routes/Integrations/Integrations.php
- Raw: https://pluginprobe.com/plugins/ivyforms/1.5.1/raw/backend/src/Routes/Integrations/Integrations.php
- Modified: 2026-06-22T13:19:22+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ivyforms/1.5.1/code/backend/src/Routes/Integrations/Integrations.php#L10-L20`.

```php
<?php

namespace IvyForms\Routes\Integrations;

use IvyForms\Services\Permissions\IvyFormsAccess;
use IvyForms\Vendor\DI\Container;
use IvyForms\Vendor\DI\DependencyException;
use IvyForms\Vendor\DI\NotFoundException;
use IvyForms\Controllers\Integrations\InstallPluginController;
use IvyForms\Controllers\Integration\GetAllIntegrationsController;
use IvyForms\Controllers\Integration\GetIntegrationController;

/**
 * Class Integrations
 *
 * Registers REST API routes for integrations
 *
 * @package IvyForms\Routes\Integrations
 */
class Integrations
{
    /**
     * Register integrations routes
     *
     * @param Container $container
     * @param string    $routeNamespace
     *
     * @throws DependencyException
     * @throws NotFoundException
     */
    public static function registerRoutes(Container $container, string $routeNamespace): void
    {
        // Get all integrations
        register_rest_route(
            $routeNamespace,
            '/integrations',
            [
                'methods'             => 'GET',
                'callback'            => $container->get(GetAllIntegrationsController::class),
                'permission_callback' => function () {
                    return IvyFormsAccess::canAccessPluginAdminRoutes();
                },
            ]
        );

        // Get single integration
        register_rest_route(
            $routeNamespace,
            '/integrations/(?P<slug>[a-zA-Z0-9_-]+)',
            [
                'methods'             => 'GET',
                'callback'            => $container->get(GetIntegrationController::class),
                'permission_callback' => function () {
                    return IvyFormsAccess::canAccessPluginAdminRoutes();
                },
            ]
        );

        // Install plugin endpoint
        register_rest_route(
            $routeNamespace,
            '/integrations/install-plugin',
            [
                'methods'             => 'POST',
                'callback'            => [$container->get(InstallPluginController::class), 'install'],
                'permission_callback' => function () {
                    return IvyFormsAccess::canAccessPluginAdminRoutes()
                        && current_user_can('install_plugins')
                        && current_user_can('activate_plugins');
                },
            ]
        );
    }
}

```
