Files
cloudflare-php/src/Configurations/PageRulesActions.php
2017-09-23 18:50:51 +01:00

370 lines
10 KiB
PHP

<?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;
}
}