Merge pull request #102 from umbrellio/add_endpoints_zones_settings

add endpoint for server-side exclude setting
This commit is contained in:
Junade
2020-02-03 17:22:17 +00:00
committed by GitHub
4 changed files with 95 additions and 0 deletions

View File

@@ -9,9 +9,12 @@
namespace Cloudflare\API\Endpoints;
use Cloudflare\API\Adapter\Adapter;
use Cloudflare\API\Traits\BodyAccessorTrait;
class ZoneSettings implements API
{
use BodyAccessorTrait;
private $adapter;
public function __construct(Adapter $adapter)
@@ -75,6 +78,20 @@ class ZoneSettings implements API
return false;
}
public function getServerSideExcludeSetting($zoneID)
{
$return = $this->adapter->get(
'zones/' . $zoneID . '/settings/server_side_exclude'
);
$body = json_decode($return->getBody());
if ($body->success) {
return $body->result->value;
}
return false;
}
public function getHotlinkProtectionSetting($zoneID)
{
$return = $this->adapter->get(
@@ -177,4 +194,21 @@ class ZoneSettings implements API
return false;
}
public function updateServerSideExcludeSetting($zoneID, $value)
{
$return = $this->adapter->patch(
'zones/' . $zoneID . '/settings/server_side_exclude',
[
'value' => $value
]
);
$body = json_decode($return->getBody());
if ($body->success) {
return $body->result->value;
}
return false;
}
}

View File

@@ -0,0 +1,39 @@
<?php
declare(strict_types=1);
use Cloudflare\API\Adapter\Adapter;
use Cloudflare\API\Endpoints\ZoneSettings;
class ZoneSettingsTest extends TestCase
{
public function testGetServerSideExcludeSetting()
{
$response = $this->getPsr7JsonResponseForFixture('Endpoints/getServerSideExclude.json');
$mock = $this->getMockBuilder(Adapter::class)->getMock();
$mock->method('get')->willReturn($response);
$mock->expects($this->once())->method('get');
$zones = new ZoneSettings($mock);
$result = $zones->getServerSideExcludeSetting('023e105f4ecef8ad9ca31a8372d0c353');
$this->assertSame('on', $result);
}
public function testUpdateServerSideExcludeSetting()
{
$response = $this->getPsr7JsonResponseForFixture('Endpoints/updateServerSideExclude.json');
$mock = $this->getMockBuilder(Adapter::class)->getMock();
$mock->method('patch')->willReturn($response);
$mock->expects($this->once())->method('patch');
$zones = new ZoneSettings($mock);
$result = $zones->updateServerSideExcludeSetting('023e105f4ecef8ad9ca31a8372d0c353', 'on');
$this->assertSame('on', $result);
}
}

View File

@@ -0,0 +1,11 @@
{
"success": true,
"errors": [],
"messages": [],
"result": {
"id": "server_side_exclude",
"value": "on",
"editable": true,
"modified_on": "2014-01-01T05:20:00.12345Z"
}
}

View File

@@ -0,0 +1,11 @@
{
"success": true,
"errors": [],
"messages": [],
"result": {
"id": "server_side_exclude",
"value": "on",
"editable": true,
"modified_on": "2014-01-01T05:20:00.12345Z"
}
}