diff --git a/app/Libraries/Cloudflare/Zone.php b/app/Libraries/Cloudflare/Zone.php index ce679e2..191abc4 100644 --- a/app/Libraries/Cloudflare/Zone.php +++ b/app/Libraries/Cloudflare/Zone.php @@ -11,7 +11,7 @@ class Zone extends Cloudflare { private $_model = null; private $_account_entity = null; - private $_setting_fields = ['development_mode' => 'off', 'ipv6' => 'off', 'security_level' => 'medium']; + private $_setting_fields = ['development_mode' => 'off', 'ipv6' => 'off', 'security_level' => 'medium', 'ssl' => 'off']; public function __construct(AccountEntity $account_entity) { $this->_account_entity = $account_entity; @@ -70,29 +70,17 @@ class Zone extends Cloudflare } foreach ($cf->result as $result) { if (in_array(needle: $result->id, haystack: array_keys($this->_setting_fields))) { - $formDatas[$result->id] = $result->value; + $formDatas[$result->id === 'ssl' ? 'ssl_mode' : $result->id] = $result->value; } } // log_message("debug", var_export($cf, return: true)); return $formDatas; } - private function getCFSettingSSL(string $uid, array $formDatas = []): array - { - $cf = $this->getMySocket()->get('zones/' . $uid . '/settings/ssl'); - $cf = json_decode($cf->getBody()); - if (!$cf->success) { - $message = "Zone:" . __FUNCTION__ . "에서 실패:\nresponse:" . var_export($cf, true); - log_message("error", $message); - throw new \Exception($message); - } - log_message("debug", var_export($cf->result, true)); - $formDatas['ssl_mode'] = $cf->result->value; - // log_message("debug", var_export($cf, return: true)); - // exit; - return $formDatas; - } private function setCFSetting(string $uid, string $field, string $value): string { + if ($field === 'ssl_mode') { + $field = 'ssl'; + } $datas = ['value' => $value]; $cf = $this->getMySocket()->patch('zones/' . $uid . '/settings/' . $field, $datas); $cf = json_decode($cf->getBody()); @@ -104,19 +92,6 @@ class Zone extends Cloudflare //최종 결과값은 body->result->id='필드명',body->result->value='on/off'이런식으로 받음 return $cf->result->value; } - private function setCFSettingSSL(string $uid, string $field, string $value): string - { - $datas = ['value' => $value]; - $cf = $this->getMySocket()->patch('zones/' . $uid . '/settings/ssl', $datas); - $cf = json_decode($cf->getBody()); - if (!$cf->success || $cf->result->id !== $field) { - $message = "Zone:" . __FUNCTION__ . "에서 실패:\nrequest:" . var_export($datas, true) . "\nresponse:" . var_export($cf, true); - log_message("error", $message); - throw new \Exception($message); - } - //최종 결과값은 body->result->id='필드명',body->result->value='on/off'이런식으로 받음 - return $cf->result->value; - } public function create(string $domain, bool $jump_start = false): ZoneEntity { //Socket용 @@ -145,12 +120,8 @@ class Zone extends Cloudflare { // throw new \Exception("zone:modify" . var_export($formDatas, true)); foreach ($formDatas as $field => $value) { - if ($field === 'ssl_mode') { - $formDatas[$field] = $this->setCFSettingSSL($entity->getPK(), $field, $value); - } else { - //modify,toggle,batchjob 사용 셋팅 ipv6 , //development_mode , //security_level - $formDatas[$field] = $this->setCFSetting($entity->getPK(), $field, $value); - } + //modify,toggle,batchjob 사용 셋팅 ipv6 , //development_mode , //security_level + $formDatas[$field] = $this->setCFSetting($entity->getPK(), $field, $value); } //DB수정 return $this->getModel()->modify($entity, $formDatas); @@ -183,8 +154,6 @@ class Zone extends Cloudflare // log_message("debug", var_export($formDatas, true)); $formDatas = $this->getCFSetting($formDatas[ZoneModel::PK], $formDatas); // log_message("debug", var_export($formDatas, true)); - $formDatas = $this->getCFSettingSSL($formDatas[ZoneModel::PK], $formDatas); - // log_message("debug", var_export($formDatas, true)); $entity = $this->getModel()->modify($entity, $formDatas); // log_message("debug", $this->getModel()->getLastQuery()); return $entity; @@ -200,7 +169,6 @@ class Zone extends Cloudflare foreach ($zone_results as $result) { $formDatas = $this->getArrayByResult($result); $formDatas = $this->getCFSetting($formDatas[ZoneModel::PK], $formDatas); - $formDatas = $this->getCFSettingSSL($formDatas[ZoneModel::PK], $formDatas); $entitys[$formDatas[ZoneModel::PK]] = $this->getModel()->modify(new ZoneEntity(), $formDatas); } //부모키를 기준으로 CF에 존재하지 않는 데이터 삭제용