mirror of
https://github.com/nullthoughts/laravel-data-sync.git
synced 2026-02-14 01:52:57 +00:00
Initial commit
This commit is contained in:
121
vendor/nexmo/client/src/Application/Application.php
vendored
Normal file
121
vendor/nexmo/client/src/Application/Application.php
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
/**
|
||||
* Nexmo Client Library for PHP
|
||||
*
|
||||
* @copyright Copyright (c) 2016 Nexmo, Inc. (http://nexmo.com)
|
||||
* @license https://github.com/Nexmo/nexmo-php/blob/master/LICENSE.txt MIT License
|
||||
*/
|
||||
|
||||
namespace Nexmo\Application;
|
||||
|
||||
|
||||
use Nexmo\Entity\JsonUnserializableInterface;
|
||||
use Nexmo\Entity\EntityInterface;
|
||||
use Nexmo\Entity\JsonResponseTrait;
|
||||
use Nexmo\Entity\JsonSerializableTrait;
|
||||
use Nexmo\Entity\Psr7Trait;
|
||||
|
||||
class Application implements EntityInterface, \JsonSerializable, JsonUnserializableInterface
|
||||
{
|
||||
use JsonSerializableTrait;
|
||||
use Psr7Trait;
|
||||
use JsonResponseTrait;
|
||||
|
||||
protected $voiceConfig;
|
||||
|
||||
protected $name;
|
||||
|
||||
protected $keys = [];
|
||||
|
||||
protected $id;
|
||||
|
||||
public function __construct($id = null)
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setVoiceConfig(VoiceConfig $config)
|
||||
{
|
||||
$this->voiceConfig = $config;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return VoiceConfig
|
||||
*/
|
||||
public function getVoiceConfig()
|
||||
{
|
||||
if(!isset($this->voiceConfig)){
|
||||
$this->setVoiceConfig(new VoiceConfig());
|
||||
$data = $this->getResponseData();
|
||||
if(isset($data['voice']) AND isset($data['voice']['webhooks'])){
|
||||
foreach($data['voice']['webhooks'] as $webhook){
|
||||
$this->voiceConfig->setWebhook($webhook['endpoint_type'], $webhook['endpoint'], $webhook['http_method']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this->voiceConfig;
|
||||
}
|
||||
|
||||
public function getPublicKey()
|
||||
{
|
||||
if(isset($this->keys['public_key'])){
|
||||
return $this->keys['public_key'];
|
||||
}
|
||||
}
|
||||
|
||||
public function getPrivateKey()
|
||||
{
|
||||
if(isset($this->keys['private_key'])){
|
||||
return $this->keys['private_key'];
|
||||
}
|
||||
}
|
||||
|
||||
public function setName($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function jsonUnserialize(array $json)
|
||||
{
|
||||
$this->name = $json['name'];
|
||||
$this->id = $json['id'];
|
||||
$this->keys = $json['keys'];
|
||||
|
||||
//todo: make voice hydrate-able
|
||||
$this->voiceConfig = new VoiceConfig();
|
||||
if(isset($json['voice']) AND isset($json['voice']['webhooks'])){
|
||||
foreach($json['voice']['webhooks'] as $webhook){
|
||||
$this->voiceConfig->setWebhook($webhook['endpoint_type'], new Webhook($webhook['endpoint'], $webhook['http_method']));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function jsonSerialize()
|
||||
{
|
||||
return [
|
||||
'name' => $this->getName(),
|
||||
//currently, the request data does not match the response data
|
||||
'event_url' => (string) $this->getVoiceConfig()->getWebhook(VoiceConfig::EVENT),
|
||||
'answer_url' => (string) $this->getVoiceConfig()->getWebhook(VoiceConfig::ANSWER),
|
||||
'type' => 'voice' //currently the only type
|
||||
];
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return (string) $this->getId();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user