1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
<?php
namespace OpenCloud\CDN\Resource;
use OpenCloud\Common\Resource\PersistentResource;
class Service extends PersistentResource
{
protected static $url_resource = 'services';
protected static $json_name = 'service';
protected $id;
protected $name;
protected $domains;
protected $origins;
protected $caching;
protected $restrictions;
protected $flavorId;
protected $status;
protected $links;
protected $errors;
protected $aliases = array(
'flavor_id' => 'flavorId',
'http_host' => 'httpHost',
'request_url' => 'requestUrl'
);
protected $createKeys = array(
'name',
'domains',
'origins',
'caching',
'restrictions',
'flavorId'
);
protected $updateKeys = array(
'name',
'domains',
'origins',
'caching',
'restrictions',
'flavorId'
);
public function purgeAssets($assetUrl = null)
{
$assetsUrl = $this->assetsUrl();
if (null === $assetUrl) {
$assetsUrl->setQuery(array('all' => 'true'));
} else {
$assetsUrl->setQuery(array('url' => $assetUrl));
}
$request = $this->getClient()->delete($assetsUrl);
$request->removeHeader('Accept');
return $request->send();
}
protected function assetsUrl()
{
$url = clone $this->getUrl();
$url->addPath('assets');
return $url;
}
protected function createJson()
{
$createJson = parent::createJson();
return $createJson->{self::$json_name};
}
public function update($params = array())
{
$json = $this->generateJsonPatch($params);
return $this->getClient()
->patch($this->getUrl(), $this->getPatchHeaders(), $json)
->send();
}
}