Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7aa3a118af | ||
|
|
ae2c680e85 | ||
|
|
78eadb9a47 | ||
|
|
e1c2539d9a | ||
|
|
471a42d554 | ||
|
|
d9c0a27b7d | ||
|
|
8182aa8810 | ||
|
|
df12f7ba6f | ||
|
|
9d434a23b3 | ||
|
|
f105d38d85 | ||
|
|
910644f88d | ||
|
|
68b9fa3353 | ||
|
|
c394f5ac4d | ||
|
|
e94ab8ddbe | ||
|
|
2b25365988 | ||
|
|
bd92b2a4c0 | ||
|
|
6acf09ba82 | ||
|
|
6410f50f6d | ||
|
|
d6f0eada8c | ||
|
|
6f1ac605f5 | ||
|
|
9311583f43 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +1,2 @@
|
|||||||
|
/.idea
|
||||||
/vendor/
|
/vendor/
|
||||||
@@ -5,7 +5,8 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"guzzlehttp/guzzle": "^6.2.2",
|
"guzzlehttp/guzzle": "^6.2.2",
|
||||||
"php": ">=7.0.0",
|
"php": ">=7.0.0",
|
||||||
"psr/http-message": "~1.0"
|
"psr/http-message": "~1.0",
|
||||||
|
"ext-json": "*"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "5.7.5",
|
"phpunit/phpunit": "5.7.5",
|
||||||
@@ -28,5 +29,10 @@
|
|||||||
"classmap": [
|
"classmap": [
|
||||||
"tests/"
|
"tests/"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"preferred-install": "dist",
|
||||||
|
"sort-packages": true,
|
||||||
|
"optimize-autoloader": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
phpcbf.phar
Normal file
BIN
phpcbf.phar
Normal file
Binary file not shown.
BIN
phpcs.phar
Normal file
BIN
phpcs.phar
Normal file
Binary file not shown.
@@ -21,6 +21,11 @@ class AccessRules implements Configurations
|
|||||||
$this->config = ['target' => 'country', 'value' => $value];
|
$this->config = ['target' => 'country', 'value' => $value];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setASN(string $value)
|
||||||
|
{
|
||||||
|
$this->config = ['target' => 'asn', 'value' => $value];
|
||||||
|
}
|
||||||
|
|
||||||
public function getArray(): array
|
public function getArray(): array
|
||||||
{
|
{
|
||||||
return $this->config;
|
return $this->config;
|
||||||
|
|||||||
83
src/Endpoints/Membership.php
Normal file
83
src/Endpoints/Membership.php
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Cloudflare\API\Endpoints;
|
||||||
|
|
||||||
|
use Cloudflare\API\Adapter\Adapter;
|
||||||
|
use Cloudflare\API\Traits\BodyAccessorTrait;
|
||||||
|
|
||||||
|
/* A list of memberships of accounts this user can access */
|
||||||
|
|
||||||
|
class Membership implements API
|
||||||
|
{
|
||||||
|
use BodyAccessorTrait;
|
||||||
|
|
||||||
|
private $adapter;
|
||||||
|
|
||||||
|
public function __construct(Adapter $adapter)
|
||||||
|
{
|
||||||
|
$this->adapter = $adapter;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function listMemberships(
|
||||||
|
string $name = '',
|
||||||
|
string $status = '',
|
||||||
|
int $page = 1,
|
||||||
|
int $perPage = 20,
|
||||||
|
string $order = '',
|
||||||
|
string $direction = ''
|
||||||
|
): \stdClass {
|
||||||
|
$query = [
|
||||||
|
'page' => $page,
|
||||||
|
'per_page' => $perPage
|
||||||
|
];
|
||||||
|
|
||||||
|
if (!empty($name)) {
|
||||||
|
$query['account.name'] = $name;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($status) && in_array($status, ['accepted', 'pending', 'rejected'], true)) {
|
||||||
|
$query['status'] = $status;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($order) && in_array($order, ['id', 'account.name', 'status'], true)) {
|
||||||
|
$query['order'] = $order;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($direction) && in_array($direction, ['asc', 'desc'], true)) {
|
||||||
|
$query['direction'] = $direction;
|
||||||
|
}
|
||||||
|
|
||||||
|
$memberships = $this->adapter->get('memberships', $query);
|
||||||
|
$this->body = json_decode($memberships->getBody());
|
||||||
|
|
||||||
|
return (object)['result' => $this->body->result, 'result_info' => $this->body->result_info];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMembershipDetails(string $membershipId): \stdClass
|
||||||
|
{
|
||||||
|
$membership = $this->adapter->get(sprintf('memberships/%s', $membershipId));
|
||||||
|
$this->body = json_decode($membership->getBody());
|
||||||
|
return $this->body->result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateMembershipStatus(string $membershipId, string $status): \stdClass
|
||||||
|
{
|
||||||
|
$response = $this->adapter->put(sprintf('memberships/%s', $membershipId), ['status' => $status]);
|
||||||
|
$this->body = json_decode($response->getBody());
|
||||||
|
return $this->body;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteMembership(string $membershipId): bool
|
||||||
|
{
|
||||||
|
$response = $this->adapter->delete(sprintf('memberships/%s', $membershipId));
|
||||||
|
|
||||||
|
$this->body = json_decode($response->getBody());
|
||||||
|
|
||||||
|
if (isset($this->body->result->id)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,7 +25,7 @@ class TLS implements API
|
|||||||
'zones/' . $zoneID . '/settings/tls_1_3',
|
'zones/' . $zoneID . '/settings/tls_1_3',
|
||||||
['value' => 'on']
|
['value' => 'on']
|
||||||
);
|
);
|
||||||
$body = json_decode($return->getBody());
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
if ($body->success) {
|
if ($body->success) {
|
||||||
return true;
|
return true;
|
||||||
@@ -40,7 +40,7 @@ class TLS implements API
|
|||||||
'zones/' . $zoneID . '/settings/tls_1_3',
|
'zones/' . $zoneID . '/settings/tls_1_3',
|
||||||
['value' => 'off']
|
['value' => 'off']
|
||||||
);
|
);
|
||||||
$body = json_decode($return->getBody());
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
if ($body->success) {
|
if ($body->success) {
|
||||||
return true;
|
return true;
|
||||||
@@ -50,16 +50,77 @@ class TLS implements API
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function changeMinimumTLSVersion($zoneID, $minimumVersion)
|
public function changeMinimumTLSVersion($zoneID, $minimumVersion)
|
||||||
{
|
{
|
||||||
$return = $this->adapter->patch(
|
$return = $this->adapter->patch(
|
||||||
'zones/' . $zoneID . '/settings/min_tls_version',
|
'zones/' . $zoneID . '/settings/min_tls_version',
|
||||||
[
|
[
|
||||||
'value' => $minimumVersion
|
'value' => $minimumVersion,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$body = json_decode($return->getBody());
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getHTTPSRedirectSetting($zoneID)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->get(
|
||||||
|
'zones/' . $zoneID . '/settings/always_use_https'
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return $body->result->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getHTTPSRewritesSetting($zoneID)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->get(
|
||||||
|
'zones/' . $zoneID . '/settings/automatic_https_rewrites'
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return $body->result->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateHTTPSRedirectStatus($zoneID, $value)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->patch(
|
||||||
|
'zones/' . $zoneID . '/settings/always_use_https',
|
||||||
|
[
|
||||||
|
'value' => $value,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateHTTPSRewritesStatus($zoneID, $value)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->patch(
|
||||||
|
'zones/' . $zoneID . '/settings/automatic_https_rewrites',
|
||||||
|
[
|
||||||
|
'value' => $value,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
if ($body->success) {
|
if ($body->success) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
180
src/Endpoints/ZoneSettings.php
Normal file
180
src/Endpoints/ZoneSettings.php
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: paul.adams
|
||||||
|
* Date: 2019-02-22
|
||||||
|
* Time: 23:28
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Cloudflare\API\Endpoints;
|
||||||
|
|
||||||
|
use Cloudflare\API\Adapter\Adapter;
|
||||||
|
|
||||||
|
class ZoneSettings implements API
|
||||||
|
{
|
||||||
|
private $adapter;
|
||||||
|
|
||||||
|
public function __construct(Adapter $adapter)
|
||||||
|
{
|
||||||
|
$this->adapter = $adapter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMinifySetting($zoneID)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->get(
|
||||||
|
'zones/' . $zoneID . '/settings/minify'
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return $body->result->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRocketLoaderSetting($zoneID)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->get(
|
||||||
|
'zones/' . $zoneID . '/settings/rocket_loader'
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return $body->result->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getAlwaysOnlineSetting($zoneID)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->get(
|
||||||
|
'zones/' . $zoneID . '/settings/always_online'
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return $body->result->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getEmailObfuscationSetting($zoneID)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->get(
|
||||||
|
'zones/' . $zoneID . '/settings/email_obfuscation'
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return $body->result->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getHotlinkProtectionSetting($zoneID)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->get(
|
||||||
|
'zones/' . $zoneID . '/settings/hotlink_protection'
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return $body->result->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateMinifySetting($zoneID, $html, $css, $javascript)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->patch(
|
||||||
|
'zones/' . $zoneID . '/settings/minify',
|
||||||
|
[
|
||||||
|
'value' => [
|
||||||
|
'html' => $html,
|
||||||
|
'css' => $css,
|
||||||
|
'js' => $javascript,
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateRocketLoaderSetting($zoneID, $value)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->patch(
|
||||||
|
'zones/' . $zoneID . '/settings/rocket_loader',
|
||||||
|
[
|
||||||
|
'value' => $value,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateAlwaysOnlineSetting($zoneID, $value)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->patch(
|
||||||
|
'zones/' . $zoneID . '/settings/always_online',
|
||||||
|
[
|
||||||
|
'value' => $value,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateEmailObfuscationSetting($zoneID, $value)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->patch(
|
||||||
|
'zones/' . $zoneID . '/settings/email_obfuscation',
|
||||||
|
[
|
||||||
|
'value' => $value,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateHotlinkProtectionSetting($zoneID, $value)
|
||||||
|
{
|
||||||
|
$return = $this->adapter->patch(
|
||||||
|
'zones/' . $zoneID . '/settings/hotlink_protection',
|
||||||
|
[
|
||||||
|
'value' => $value,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$body = json_decode($return->getBody());
|
||||||
|
|
||||||
|
if ($body->success) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -58,6 +58,15 @@ class Zones implements API
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getZoneById(
|
||||||
|
string $zoneId
|
||||||
|
): \stdClass {
|
||||||
|
$user = $this->adapter->get('zones/' . $zoneId);
|
||||||
|
$this->body = json_decode($user->getBody());
|
||||||
|
|
||||||
|
return (object)['result' => $this->body->result];
|
||||||
|
}
|
||||||
|
|
||||||
public function listZones(
|
public function listZones(
|
||||||
string $name = '',
|
string $name = '',
|
||||||
string $status = '',
|
string $status = '',
|
||||||
@@ -144,6 +153,38 @@ class Zones implements API
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return caching level settings
|
||||||
|
* @param string $zoneID
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getCachingLevel(string $zoneID): string
|
||||||
|
{
|
||||||
|
$response = $this->adapter->get('zones/' . $zoneID . '/settings/cache_level');
|
||||||
|
|
||||||
|
$this->body = json_decode($response->getBody());
|
||||||
|
|
||||||
|
return $this->body->result->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change caching level settings
|
||||||
|
* @param string $zoneID
|
||||||
|
* @param string $level (aggressive | basic | simplified)
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function setCachingLevel(string $zoneID, string $level = 'aggressive'): bool
|
||||||
|
{
|
||||||
|
$response = $this->adapter->patch('zones/' . $zoneID . '/settings/cache_level', ['value' => $level]);
|
||||||
|
|
||||||
|
$this->body = json_decode($response->getBody());
|
||||||
|
|
||||||
|
if ($this->body->success) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Purge Everything
|
* Purge Everything
|
||||||
|
|||||||
93
tests/Endpoints/MembershipTest.php
Normal file
93
tests/Endpoints/MembershipTest.php
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
class MembershipTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testListMemberships()
|
||||||
|
{
|
||||||
|
$response = $this->getPsr7JsonResponseForFixture('Endpoints/listMemberships.json');
|
||||||
|
|
||||||
|
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
|
||||||
|
$mock->method('get')->willReturn($response);
|
||||||
|
|
||||||
|
$mock->expects($this->once())
|
||||||
|
->method('get')
|
||||||
|
->with(
|
||||||
|
$this->equalTo('memberships'),
|
||||||
|
$this->equalTo([
|
||||||
|
'page' => 1,
|
||||||
|
'per_page' => 20,
|
||||||
|
'account.name' => 'Demo Account',
|
||||||
|
'status' => 'accepted',
|
||||||
|
'order' => 'status',
|
||||||
|
'direction' => 'desc',
|
||||||
|
])
|
||||||
|
);
|
||||||
|
|
||||||
|
$zones = new \Cloudflare\API\Endpoints\Membership($mock);
|
||||||
|
$result = $zones->listMemberships('Demo Account', 'accepted', 1, 20, 'status', 'desc');
|
||||||
|
|
||||||
|
$this->assertObjectHasAttribute('result', $result);
|
||||||
|
$this->assertObjectHasAttribute('result_info', $result);
|
||||||
|
|
||||||
|
$this->assertEquals('4536bcfad5faccb111b47003c79917fa', $result->result[0]->id);
|
||||||
|
$this->assertEquals(1, $result->result_info->page);
|
||||||
|
$this->assertEquals('4536bcfad5faccb111b47003c79917fa', $zones->getBody()->result[0]->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetMembershipDetails()
|
||||||
|
{
|
||||||
|
$response = $this->getPsr7JsonResponseForFixture('Endpoints/getMembershipDetails.json');
|
||||||
|
|
||||||
|
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
|
||||||
|
$mock->method('get')->willReturn($response);
|
||||||
|
|
||||||
|
$membership = new \Cloudflare\API\Endpoints\Membership($mock);
|
||||||
|
$details = $membership->getMembershipDetails('4536bcfad5faccb111b47003c79917fa');
|
||||||
|
|
||||||
|
$this->assertObjectHasAttribute('id', $details);
|
||||||
|
$this->assertEquals('4536bcfad5faccb111b47003c79917fa', $details->id);
|
||||||
|
$this->assertObjectHasAttribute('code', $details);
|
||||||
|
$this->assertEquals('05dd05cce12bbed97c0d87cd78e89bc2fd41a6cee72f27f6fc84af2e45c0fac0', $details->code);
|
||||||
|
$this->assertEquals('4536bcfad5faccb111b47003c79917fa', $membership->getBody()->result->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUpdateMembershipDetails()
|
||||||
|
{
|
||||||
|
$response = $this->getPsr7JsonResponseForFixture('Endpoints/updateMembershipStatus.json');
|
||||||
|
|
||||||
|
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
|
||||||
|
$mock->method('put')->willReturn($response);
|
||||||
|
|
||||||
|
$mock->expects($this->once())
|
||||||
|
->method('put')
|
||||||
|
->with(
|
||||||
|
$this->equalTo('memberships/4536bcfad5faccb111b47003c79917fa'),
|
||||||
|
$this->equalTo([
|
||||||
|
'status' => 'accepted'
|
||||||
|
])
|
||||||
|
);
|
||||||
|
|
||||||
|
$membership = new \Cloudflare\API\Endpoints\Membership($mock);
|
||||||
|
$membership->updateMembershipStatus('4536bcfad5faccb111b47003c79917fa', 'accepted');
|
||||||
|
$this->assertEquals('4536bcfad5faccb111b47003c79917fa', $membership->getBody()->result->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDeleteMembership()
|
||||||
|
{
|
||||||
|
$response = $this->getPsr7JsonResponseForFixture('Endpoints/deleteMembership.json');
|
||||||
|
|
||||||
|
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
|
||||||
|
$mock->method('delete')->willReturn($response);
|
||||||
|
|
||||||
|
$mock->expects($this->once())
|
||||||
|
->method('delete')
|
||||||
|
->with($this->equalTo('memberships/4536bcfad5faccb111b47003c79917fa'));
|
||||||
|
|
||||||
|
$membership = new \Cloudflare\API\Endpoints\Membership($mock);
|
||||||
|
|
||||||
|
$membership->deleteMembership('4536bcfad5faccb111b47003c79917fa');
|
||||||
|
|
||||||
|
$this->assertEquals('4536bcfad5faccb111b47003c79917fa', $membership->getBody()->result->id);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -102,6 +102,25 @@ class ZonesTest extends TestCase
|
|||||||
$this->assertEquals('023e105f4ecef8ad9ca31a8372d0c353', $zones->getBody()->result[0]->id);
|
$this->assertEquals('023e105f4ecef8ad9ca31a8372d0c353', $zones->getBody()->result[0]->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetZoneByID()
|
||||||
|
{
|
||||||
|
$response = $this->getPsr7JsonResponseForFixture('Endpoints/getZoneById.json');
|
||||||
|
|
||||||
|
$mock = $this->getMockBuilder(\Cloudflare\API\Adapter\Adapter::class)->getMock();
|
||||||
|
$mock->method('get')->willReturn($response);
|
||||||
|
|
||||||
|
$mock->expects($this->once())
|
||||||
|
->method('get')
|
||||||
|
->with($this->equalTo('zones/023e105f4ecef8ad9ca31a8372d0c353'));
|
||||||
|
|
||||||
|
$zones = new \Cloudflare\API\Endpoints\Zones($mock);
|
||||||
|
$result = $zones->getZoneById('023e105f4ecef8ad9ca31a8372d0c353');
|
||||||
|
|
||||||
|
$this->assertInstanceOf(\stdClass::class, $result);
|
||||||
|
$this->assertEquals('023e105f4ecef8ad9ca31a8372d0c353', $zones->getBody()->result->id);
|
||||||
|
$this->assertEquals('example.com', $zones->getBody()->result->name);
|
||||||
|
}
|
||||||
|
|
||||||
public function testGetZoneID()
|
public function testGetZoneID()
|
||||||
{
|
{
|
||||||
$response = $this->getPsr7JsonResponseForFixture('Endpoints/getZoneId.json');
|
$response = $this->getPsr7JsonResponseForFixture('Endpoints/getZoneId.json');
|
||||||
|
|||||||
8
tests/Fixtures/Endpoints/deleteMembership.json
Normal file
8
tests/Fixtures/Endpoints/deleteMembership.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"errors": [],
|
||||||
|
"messages": [],
|
||||||
|
"result": {
|
||||||
|
"id": "4536bcfad5faccb111b47003c79917fa"
|
||||||
|
}
|
||||||
|
}
|
||||||
70
tests/Fixtures/Endpoints/getMembershipDetails.json
Normal file
70
tests/Fixtures/Endpoints/getMembershipDetails.json
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"errors": [],
|
||||||
|
"messages": [],
|
||||||
|
"result": {
|
||||||
|
"id": "4536bcfad5faccb111b47003c79917fa",
|
||||||
|
"code": "05dd05cce12bbed97c0d87cd78e89bc2fd41a6cee72f27f6fc84af2e45c0fac0",
|
||||||
|
"status": "accepted",
|
||||||
|
"account": {
|
||||||
|
"id": "01a7362d577a6c3019a474fd6f485823",
|
||||||
|
"name": "Demo Account",
|
||||||
|
"settings": {
|
||||||
|
"enforce_twofactor": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"roles": [
|
||||||
|
"Account Administrator"
|
||||||
|
],
|
||||||
|
"permissions": {
|
||||||
|
"analytics": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"billing": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"cache_purge": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"dns": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"dns_records": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"lb": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"logs": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"organization": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"ssl": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"waf": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"zones": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"zone_settings": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
59
tests/Fixtures/Endpoints/getZoneById.json
Normal file
59
tests/Fixtures/Endpoints/getZoneById.json
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"errors": [],
|
||||||
|
"messages": [],
|
||||||
|
"result": {
|
||||||
|
"id": "023e105f4ecef8ad9ca31a8372d0c353",
|
||||||
|
"name": "example.com",
|
||||||
|
"development_mode": 7200,
|
||||||
|
"original_name_servers": [
|
||||||
|
"ns1.originaldnshost.com",
|
||||||
|
"ns2.originaldnshost.com"
|
||||||
|
],
|
||||||
|
"original_registrar": "GoDaddy",
|
||||||
|
"original_dnshost": "NameCheap",
|
||||||
|
"created_on": "2014-01-01T05:20:00.12345Z",
|
||||||
|
"modified_on": "2014-01-01T05:20:00.12345Z",
|
||||||
|
"activated_on": "2014-01-02T00:01:00.12345Z",
|
||||||
|
"owner": {
|
||||||
|
"id": "7c5dae5552338874e5053f2534d2767a",
|
||||||
|
"email": "user@example.com",
|
||||||
|
"type": "user"
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"id": "01a7362d577a6c3019a474fd6f485823",
|
||||||
|
"name": "Demo Account"
|
||||||
|
},
|
||||||
|
"permissions": [
|
||||||
|
"#zone:read",
|
||||||
|
"#zone:edit"
|
||||||
|
],
|
||||||
|
"plan": {
|
||||||
|
"id": "e592fd9519420ba7405e1307bff33214",
|
||||||
|
"name": "Pro Plan",
|
||||||
|
"price": 20,
|
||||||
|
"currency": "USD",
|
||||||
|
"frequency": "monthly",
|
||||||
|
"legacy_id": "pro",
|
||||||
|
"is_subscribed": true,
|
||||||
|
"can_subscribe": true
|
||||||
|
},
|
||||||
|
"plan_pending": {
|
||||||
|
"id": "e592fd9519420ba7405e1307bff33214",
|
||||||
|
"name": "Pro Plan",
|
||||||
|
"price": 20,
|
||||||
|
"currency": "USD",
|
||||||
|
"frequency": "monthly",
|
||||||
|
"legacy_id": "pro",
|
||||||
|
"is_subscribed": true,
|
||||||
|
"can_subscribe": true
|
||||||
|
},
|
||||||
|
"status": "active",
|
||||||
|
"paused": false,
|
||||||
|
"type": "full",
|
||||||
|
"name_servers": [
|
||||||
|
"tony.ns.cloudflare.com",
|
||||||
|
"woz.ns.cloudflare.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
78
tests/Fixtures/Endpoints/listMemberships.json
Normal file
78
tests/Fixtures/Endpoints/listMemberships.json
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"errors": [],
|
||||||
|
"messages": [],
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"id": "4536bcfad5faccb111b47003c79917fa",
|
||||||
|
"code": "05dd05cce12bbed97c0d87cd78e89bc2fd41a6cee72f27f6fc84af2e45c0fac0",
|
||||||
|
"status": "accepted",
|
||||||
|
"account": {
|
||||||
|
"id": "01a7362d577a6c3019a474fd6f485823",
|
||||||
|
"name": "Demo Account",
|
||||||
|
"settings": {
|
||||||
|
"enforce_twofactor": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"roles": [
|
||||||
|
"Account Administrator"
|
||||||
|
],
|
||||||
|
"permissions": {
|
||||||
|
"analytics": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"billing": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"cache_purge": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"dns": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"dns_records": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"lb": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"logs": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"organization": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"ssl": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"waf": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"zones": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"zone_settings": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"result_info": {
|
||||||
|
"page": 1,
|
||||||
|
"per_page": 20,
|
||||||
|
"count": 1,
|
||||||
|
"total_count": 2000
|
||||||
|
}
|
||||||
|
}
|
||||||
70
tests/Fixtures/Endpoints/updateMembershipStatus.json
Normal file
70
tests/Fixtures/Endpoints/updateMembershipStatus.json
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"errors": [],
|
||||||
|
"messages": [],
|
||||||
|
"result": {
|
||||||
|
"id": "4536bcfad5faccb111b47003c79917fa",
|
||||||
|
"code": "05dd05cce12bbed97c0d87cd78e89bc2fd41a6cee72f27f6fc84af2e45c0fac0",
|
||||||
|
"status": "accepted",
|
||||||
|
"account": {
|
||||||
|
"id": "01a7362d577a6c3019a474fd6f485823",
|
||||||
|
"name": "Demo Account",
|
||||||
|
"settings": {
|
||||||
|
"enforce_twofactor": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"roles": [
|
||||||
|
"Account Administrator"
|
||||||
|
],
|
||||||
|
"permissions": {
|
||||||
|
"analytics": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"billing": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"cache_purge": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"dns": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"dns_records": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"lb": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"logs": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"organization": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"ssl": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"waf": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"zones": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
},
|
||||||
|
"zone_settings": {
|
||||||
|
"read": true,
|
||||||
|
"write": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user