* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @copyright PayPal */ namespace PaypalAddons\classes\API\Request\V_1; use Exception; use PayPal\Api\Webhook; use PayPal\Api\WebhookEventType; use PaypalAddons\classes\API\Response\Error as PaypalError; use PaypalAddons\classes\API\Response\Response; use PaypalAddons\classes\Constants\WebHookType; use PaypalAddons\classes\Webhook\WebhookHandlerUrl; class CreateWebHookRequest extends RequestAbstract { public function execute() { $response = new Response(); $webHook = new Webhook(); $eventTypes = []; foreach (WebHookType::getAll() as $type) { $eventTypes[] = new WebhookEventType(json_encode([ 'name' => $type, ])); } try { $webHook->setEventTypes($eventTypes); $webHook->setUrl($this->getWebhookHandlerUrl()); $result = $webHook->create($this->getApiContext()); $response ->setSuccess(true) ->setData($result); } catch (Exception $e) { $error = new PaypalError(); $error ->setErrorCode($e->getCode()) ->setMessage($e->getMessage()); $response ->setSuccess(false) ->setError($error); } return $response; } public function getWebhookHandlerUrl() { return (new WebhookHandlerUrl())->get(); } }