-
Notifications
You must be signed in to change notification settings - Fork 226
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #7 from cloudflare/COM-40
COM-40 :: Added Page Rules endpoint.
- Loading branch information
Showing
7 changed files
with
833 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<?php | ||
/** | ||
* Created by PhpStorm. | ||
* User: junade | ||
* Date: 19/09/2017 | ||
* Time: 16:57 | ||
*/ | ||
|
||
namespace Cloudflare\API\Configurations; | ||
|
||
|
||
class ConfigurationsException extends \Exception | ||
{ | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,369 @@ | ||
<?php | ||
/** | ||
* Created by PhpStorm. | ||
* User: junade | ||
* Date: 19/09/2017 | ||
* Time: 16:50 | ||
*/ | ||
|
||
namespace Cloudflare\API\Configurations; | ||
|
||
class PageRulesActions implements Configurations | ||
{ | ||
private $configs = array(); | ||
|
||
public function setAlwaysOnline(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "always_online"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setAlwaysUseHTTPS(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "always_use_https"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setBrowserCacheTTL(int $ttl) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "browser_cache_ttl"; | ||
$object->value = $ttl; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setBrowserIntegrityCheck(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "browser_check"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setBypassCacheOnCookie(bool $value) | ||
{ | ||
if (preg_match('/^([a-zA-Z0-9\.=|_*-]+)$/i', $value) < 1) { | ||
throw new ConfigurationsException("Invalid cookie string."); | ||
} | ||
|
||
$object = new \stdClass(); | ||
$object->id = "bypass_cache_on_cookie"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setCacheByDeviceType(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "cache_by_device_type"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setCacheKey(string $value) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "cache_key"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setCacheLevel(string $value) | ||
{ | ||
if (!in_array($value, ["bypass", "basic", "simplified", "aggressive", "cache_everything"])) { | ||
throw new ConfigurationsException("Invalid cache level"); | ||
} | ||
|
||
$object = new \stdClass(); | ||
$object->id = "cache_level"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setCacheOnCookie(bool $value) | ||
{ | ||
if (preg_match('/^([a-zA-Z0-9\.=|_*-]+)$/i', $value) < 1) { | ||
throw new ConfigurationsException("Invalid cookie string."); | ||
} | ||
|
||
$object = new \stdClass(); | ||
$object->id = "cache_on_cookie"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setDisableApps(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "disable_apps"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setDisablePerformance(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "disable_performance"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setDisableSecurity(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "disable_security"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setEdgeCacheTTL(int $value) | ||
{ | ||
if ($value > 2419200) { | ||
throw new ConfigurationsException("Edge Cache TTL too high."); | ||
} | ||
|
||
$object = new \stdClass(); | ||
$object->id = "edge_cache_ttl"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setEmailObfuscation(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "disable_security"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setForwardingURL(int $statusCode, string $forwardingUrl) | ||
{ | ||
if (in_array($statusCode, ['301', '302'])) { | ||
throw new ConfigurationsException('Status Codes can only be 301 or 302.'); | ||
} | ||
|
||
$object = new \stdClass(); | ||
$object->id = "forwarding_url"; | ||
$object->status_code = $statusCode; | ||
$object->url = $forwardingUrl; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setHostHeaderOverride(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "host_header_override"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setHotlinkProtection(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "hotlink_protection"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setIPGeoLocationHeader(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "ip_geolocation"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setMinification(bool $html, bool $css, bool $js) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "minification"; | ||
$object->html = $html === true ? "on" : "off"; | ||
$object->css = $css === true ? "on" : "off"; | ||
$object->js = $js === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setMirage(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "mirage"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setOriginErrorPagePassthru(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "origin_error_page_pass_thru"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setQueryStringSort(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "sort_query_string_for_cache"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setDisableRailgun(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "disable_railgun"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setResolveOverride(bool $value) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "resolve_override"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setRespectStrongEtag(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "respect_strong_etag"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setResponseBuffering(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "response_buffering"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setRocketLoader(string $value) | ||
{ | ||
if (!in_array($value, ["off", "manual", "automatic"])) { | ||
throw new ConfigurationsException('Rocket Loader can only be off, automatic, or manual.'); | ||
} | ||
|
||
$object = new \stdClass(); | ||
$object->id = "rocket_loader"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setSecurityLevel(string $value) | ||
{ | ||
if (!in_array($value, ["off", "essentially_off", "low", "medium", "high", "under_attack"])) { | ||
throw new ConfigurationsException('Can only be set to off, essentially_off, low, medium, high or under_attack.'); | ||
} | ||
|
||
$object = new \stdClass(); | ||
$object->id = "security_level"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setServerSideExcludes(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "server_side_exclude"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setSmartErrors(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "smart_errors"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setSSL(string $value) | ||
{ | ||
if (!in_array($value, ["off", "flexible", "full", "strict", "origin_pull"])) { | ||
throw new ConfigurationsException('Can only be set to off, flexible, full, strict, origin_pull.'); | ||
} | ||
|
||
$object = new \stdClass(); | ||
$object->id = "smart_errors"; | ||
$object->value = $value; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setTrueClientIpHeader(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "true_client_ip_header"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setWAF(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "waf"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setAutomatedHTTPSRewrites(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "automatic_https_rewrites"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function setOpportunisticEncryption(bool $active) | ||
{ | ||
$object = new \stdClass(); | ||
$object->id = "opportunistic_encryption"; | ||
$object->value = $active === true ? "on" : "off"; | ||
|
||
array_push($this->configs, $object); | ||
} | ||
|
||
public function getArray(): array | ||
{ | ||
return $this->configs; | ||
} | ||
} |
Oops, something went wrong.