HEX
Server: Apache/2.4.57 (Debian)
System: Linux 8ea768a960b0 5.15.0-105-generic #115-Ubuntu SMP Mon Apr 15 09:52:04 UTC 2024 x86_64
User: www-data (33)
PHP: 8.2.18
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/salesmartly-chat/src/Admin/SaleSmartlyAdminRouting.php
<?php

class SaleSmartlyAdminRouting
{

    const INTEGRATE_PROJECT_ACTION = 'salesmartly-chat-integrate-project';
    const UNINSTALL_INTEGRATE_PROJECT_ACTION = 'salesmartly-chat-uninstall-integrate-project';
    const CLEAR_ACCOUNT_DATA_ACTION = 'salesmartly-chat-clear-account-data';

    /**
     * @param SaleSmartlyAdminController $adminController
     */
    public function __construct($adminController)
    {
        add_action('admin_post_' . self::INTEGRATE_PROJECT_ACTION, [$adminController, 'handleIntegrateProjectAction']);
        add_action('admin_post_' . self::UNINSTALL_INTEGRATE_PROJECT_ACTION, [$adminController, 'handleUninstallIntegrateProjectAction']);
        add_action('admin_post_' . self::CLEAR_ACCOUNT_DATA_ACTION, [$adminController, 'clearAccountAction']);
    }


    /**
     * @return string
     */
    public static function getEndpointForIntegrateProjectAction()
    {
        return self::getEndpointForAction(self::INTEGRATE_PROJECT_ACTION);
    }

    /**
     * @return string
     */
    public static function getEndpointForUninstallIntegrateProjectAction()
    {
        return self::getEndpointForAction(self::UNINSTALL_INTEGRATE_PROJECT_ACTION);
    }

    /**
     * @return string
     */
    public static function getEndpointForClearAccountDataAction()
    {
        return self::getEndpointForAction(self::CLEAR_ACCOUNT_DATA_ACTION);
    }
    
    /**
     * @param string $action
     * @return string
     */
    private static function getEndpointForAction($action)
    {
        $queryString = http_build_query([
            'action' => $action,
            '_wpnonce' => wp_create_nonce($action),
        ]);
        return admin_url('admin-post.php?' . $queryString);
    }
    
}