cfmgrv4 init...3
This commit is contained in:
parent
fffbfd54fa
commit
3f7c0171de
@ -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에 존재하지 않는 데이터 삭제용
|
||||
|
||||
Loading…
Reference in New Issue
Block a user