%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/vendor/vonage/client-core/src/Voice/NCCO/Action/ |
Upload File : |
<?php
/**
* Vonage Client Library for PHP
*
* @copyright Copyright (c) 2016-2022 Vonage, Inc. (http://vonage.com)
* @license https://github.com/Vonage/vonage-php-sdk-core/blob/master/LICENSE.txt Apache License 2.0
*/
declare(strict_types=1);
namespace Vonage\Voice\NCCO\Action;
use InvalidArgumentException;
use Vonage\Voice\Webhook;
use function array_key_exists;
class Notify implements ActionInterface
{
public function __construct(protected array $payload, protected ?\Vonage\Voice\Webhook $eventWebhook)
{
}
/**
* @param array<array, mixed> $data
*/
public static function factory(array $payload, array $data): Notify
{
if (array_key_exists('eventUrl', $data)) {
if (array_key_exists('eventMethod', $data)) {
$webhook = new Webhook($data['eventUrl'], $data['eventMethod']);
} else {
$webhook = new Webhook($data['eventUrl']);
}
} else {
throw new InvalidArgumentException('Must supply at least an eventUrl for Notify NCCO');
}
return new Notify($payload, $webhook);
}
/**
* @return array<string, mixed>
*/
public function jsonSerialize(): array
{
return $this->toNCCOArray();
}
/**
* @return array<string, mixed>
*/
public function toNCCOArray(): array
{
$eventWebhook = $this->getEventWebhook();
return [
'action' => 'notify',
'payload' => $this->getPayload(),
'eventUrl' => [null !== $eventWebhook ? $eventWebhook->getUrl() : null],
'eventMethod' => null !== $eventWebhook ? $eventWebhook->getMethod() : null,
];
}
public function getEventWebhook(): ?Webhook
{
return $this->eventWebhook;
}
public function setEventWebhook(Webhook $eventWebhook): self
{
$this->eventWebhook = $eventWebhook;
return $this;
}
public function getPayload(): array
{
return $this->payload;
}
public function addToPayload(string $key, string $value): self
{
$this->payload[$key] = $value;
return $this;
}
}