Merge pull request #48 from anthonysterling/fix/issue-46

Nest payload for forwarding_url page rule action in value block
This commit is contained in:
Junade
2018-03-05 14:21:59 -06:00
committed by GitHub
2 changed files with 37 additions and 4 deletions

View File

@@ -132,9 +132,11 @@ class PageRulesActions implements Configurations
throw new ConfigurationsException('Status Codes can only be 301 or 302.');
}
$this->addConfigurationOption('forwarding_url', [
'status_code' => $statusCode,
'url' => $forwardingUrl,
$this->addConfigurationOption("forwarding_url", [
'value' => [
'status_code' => $statusCode,
'url' => $forwardingUrl,
],
]);
}
@@ -299,9 +301,19 @@ class PageRulesActions implements Configurations
private function addConfigurationOption(string $setting, array $configuration)
{
/**
* Transforms an, optionally nested, array in to a collection of
* stdClass objects.
*
* @var array $array
*/
$getArrayAsObject = function (array $array) {
return json_decode(json_encode($array));
};
$configuration['id'] = $setting;
$this->configs[] = (object) $configuration;
array_push($this->configs, $getArrayAsObject($configuration));
}
private function getBoolAsOnOrOff(bool $value): string

View File

@@ -0,0 +1,21 @@
<?php
use Cloudflare\API\Configurations\PageRulesActions;
class PageRulesActionTest extends TestCase
{
public function testForwardingURLConfigurationIsApplied()
{
$identifier = 'forwarding_url';
$statusCode = 301;
$forwardingURL = 'https://www.example.org/';
$actions = new PageRulesActions();
$actions->setForwardingURL($statusCode, $forwardingURL);
$configuration = $actions->getArray();
$this->assertCount(1, $configuration);
$this->assertEquals($identifier, $configuration[0]->id);
$this->assertEquals($statusCode, $configuration[0]->value->status_code);
$this->assertEquals($forwardingURL, $configuration[0]->value->url);
}
}