%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/public_html/admin1/vendor/vonage/client-core/src/Application/ |
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\Application;
use Exception;
use Psr\Http\Client\ClientExceptionInterface;
use Vonage\Client\APIClient;
use Vonage\Client\APIResource;
use Vonage\Client\ClientAwareInterface;
use Vonage\Client\ClientAwareTrait;
use Vonage\Client\Exception\Exception as ClientException;
use Vonage\Entity\Hydrator\ArrayHydrator;
use Vonage\Entity\Hydrator\HydratorInterface;
use Vonage\Entity\IterableAPICollection;
use function is_null;
class Client implements ClientAwareInterface, APIClient
{
use ClientAwareTrait;
public function __construct(protected APIResource $api, protected ?HydratorInterface $hydrator = null)
{
}
public function getApiResource(): APIResource
{
if (is_null($this->api)) {
$api = new APIResource();
$api->setClient($this->getClient())
->setBaseUri('/v2/applications')
->setCollectionName('applications');
$this->api = $api;
}
return $this->api;
}
/**
* Returns the specified application
*
* @throws ClientExceptionInterface
* @throws ClientException
*/
public function get(string $application): Application
{
$data = $this->getApiResource()->get($application);
$application = new Application();
$application->fromArray($data);
return $application;
}
public function getAll(): IterableAPICollection
{
$response = $this->api->search();
$response->setApiResource(clone $this->api);
$hydrator = new ArrayHydrator();
$hydrator->setPrototype(new Application());
$response->setHydrator($hydrator);
return $response;
}
/**
* Creates and saves a new Application
*
* @throws ClientExceptionInterface
* @throws ClientException
* @throws Exception
*/
public function create(Application $application): Application
{
// Avoids a mishap in the API where an ID can be set during creation
$data = $application->toArray();
unset($data['id']);
$response = $this->getApiResource()->create($data);
return $this->hydrator->hydrate($response);
}
/**
* Saves an existing application
*
* @throws ClientExceptionInterface
* @throws ClientException
* @throws Exception
*/
public function update($application, ?string $id = null): Application
{
if (!($application instanceof Application)) {
trigger_error(
'Passing an array to Vonage\Application\Client::update() is deprecated, ' .
'please pass an Application object instead.',
E_USER_DEPRECATED
);
$application = $this->fromArray($application);
}
if (is_null($id)) {
$id = $application->getId();
} else {
trigger_error(
'Passing an ID to Vonage\Application\Client::update() is deprecated ' .
'and will be removed in a future release',
E_USER_DEPRECATED
);
}
$data = $this->getApiResource()->update($id, $application->toArray());
return $this->hydrator->hydrate($data);
}
/**
* Deletes an application from the Vonage account
*
* @throws ClientExceptionInterface
* @throws ClientException
*/
public function delete(string $application): bool
{
$this->getApiResource()->delete($application);
return true;
}
}