File "SimulateEndpoint.php"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-webhooks/src/Endpoint/SimulateEndpoint.php
File size: 1.58 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* The endpoint for starting webhooks simulation.
*
* @package WooCommerce\PayPalCommerce\Webhooks\Endpoint
*/
declare(strict_types=1);
namespace WooCommerce\PayPalCommerce\Webhooks\Endpoint;
use Exception;
use WooCommerce\PayPalCommerce\Button\Endpoint\RequestData;
use WooCommerce\PayPalCommerce\Webhooks\Status\WebhookSimulation;
/**
* Class SimulateEndpoint
*/
class SimulateEndpoint {
const ENDPOINT = 'ppc-webhooks-simulate';
/**
* The simulation handler.
*
* @var WebhookSimulation
*/
private $simulation;
/**
* The Request Data helper object.
*
* @var RequestData
*/
private $request_data;
/**
* SimulateEndpoint constructor.
*
* @param WebhookSimulation $simulation The simulation handler.
* @param RequestData $request_data The Request Data helper object.
*/
public function __construct(
WebhookSimulation $simulation,
RequestData $request_data
) {
$this->simulation = $simulation;
$this->request_data = $request_data;
}
/**
* Returns the nonce for the endpoint.
*
* @return string
*/
public static function nonce(): string {
return self::ENDPOINT;
}
/**
* Handles the incoming request.
*/
public function handle_request() {
if ( ! current_user_can( 'manage_woocommerce' ) ) {
wp_send_json_error( 'Not admin.', 403 );
return false;
}
try {
// Validate nonce.
$this->request_data->read_request( $this->nonce() );
$this->simulation->start();
wp_send_json_success();
return true;
} catch ( Exception $error ) {
wp_send_json_error( $error->getMessage(), 500 );
return false;
}
}
}