* @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 DateTime; use PayPal\Api\WebhookEvent; use PaypalAddons\classes\API\Response\Error as PaypalError; use PaypalAddons\classes\API\Response\Response; class GetWebhookEvents extends RequestAbstract { protected $params = []; public function execute() { $response = $this->getResponse(); try { if (empty($this->getParams()['id'])) { $eventList = WebhookEvent::all($this->getParams(), $this->getApiContext())->getEvents(); } else { $eventList = [ WebhookEvent::get($this->getParams()['id'], $this->getApiContext()), ]; } $response ->setSuccess(true) ->setData($eventList); } catch (\Exception $e) { $error = new PaypalError(); $error ->setMessage($e->getMessage()) ->setErrorCode($e->getCode()); $response ->setSuccess(false) ->setError($error); } return $response; } protected function getResponse() { return new Response(); } public function getParams() { return $this->params; } public function setParams($params) { if (false == is_array($params)) { return $this; } $this->params = $params; return $this; } public function addParams($params) { if (false == is_array($params)) { return $this; } $this->params = array_merge($this->params, $params); return $this; } public function initDefaultParams() { $this->setParams([ 'page_size' => 50, 'start_time' => date(Datetime::ISO8601, strtotime('- 2 day')), ]); return $this; } }