HEX
Server: Apache
System: Linux srv13.cpanelhost.cl 3.10.0-962.3.2.lve1.5.38.el7.x86_64 #1 SMP Thu Jun 18 05:28:41 EDT 2020 x86_64
User: cca63905 (4205)
PHP: 7.3.20
Disabled: NONE
Upload Files
File: //home/cca63905/.trash/wp-content/plugins/tidio-live-chat/src/TidioLiveChat.php
<?php

namespace TidioLiveChat;

if (!defined('WPINC')) {
    die('File loaded directly. Exiting.');
}

use TidioLiveChat\Admin\AdminActionLink;
use TidioLiveChat\Admin\AdminController;
use TidioLiveChat\Admin\AdminDashboard;
use TidioLiveChat\Admin\AdminNotice;
use TidioLiveChat\Admin\AdminRouting;
use TidioLiveChat\Admin\IframeSetup;
use TidioLiveChat\Admin\NonceValidator;
use TidioLiveChat\Admin\Notice\DismissibleNoticeController;
use TidioLiveChat\Admin\Notice\DismissibleNoticeService;
use TidioLiveChat\Sdk\Api\Client\TidioApiClientFactory;
use TidioLiveChat\Sdk\Encryption\Service\EncryptionServiceFactory;
use TidioLiveChat\Sdk\IntegrationFacade;
use TidioLiveChat\Translation\ErrorTranslator;
use TidioLiveChat\Translation\TranslationLoader;
use TidioLiveChat\Widget\WidgetLoader;

class TidioLiveChat
{
    const TIDIO_PLUGIN_NAME = 'tidio-live-chat';

    public static function load()
    {
        $encryptionService = (new EncryptionServiceFactory())->create();
        $integrationState = new IntegrationState($encryptionService);
        if (!is_admin()) {
            new WidgetLoader($integrationState);
            return;
        }

        if (current_user_can('activate_plugins')) {
            $nonceValidator = new NonceValidator();
            $dismissibleNoticeService = new DismissibleNoticeService();
            $dismissibleNoticeController = new DismissibleNoticeController(
                $dismissibleNoticeService,
                $nonceValidator
            );
            new TranslationLoader();
            $apiClientFactory = new TidioApiClientFactory();
            $integrationFacade = new IntegrationFacade($apiClientFactory);
            $adminController = new AdminController(
                $integrationFacade,
                $integrationState,
                $nonceValidator,
                $dismissibleNoticeService
            );
            $iframeSetup = new IframeSetup($integrationState);
            $errorTranslator = new ErrorTranslator();

            new AdminRouting(
                $adminController,
                $dismissibleNoticeController
            );
            new AdminActionLink($integrationState);
            new AdminDashboard($integrationState, $iframeSetup);
            new AdminNotice($errorTranslator, $dismissibleNoticeService);
        }
    }
}