diff --git a/app/Controllers/Admin/Cloudflare/API/RecordController.php b/app/Controllers/Admin/Cloudflare/API/RecordController.php index 9b5563c..06c44c8 100644 --- a/app/Controllers/Admin/Cloudflare/API/RecordController.php +++ b/app/Controllers/Admin/Cloudflare/API/RecordController.php @@ -2,12 +2,13 @@ namespace App\Controllers\Admin\Cloudflare\API; +use App\Libraries\Cloudflare\API\Record; use App\Libraries\Log\Log; use App\Models\Cloudflare\API\RecordModel; +use App\Models\Cloudflare\FixedRecordModel; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; -use App\Libraries\Cloudflare\API\Record; class RecordController extends APIController { @@ -235,9 +236,9 @@ class RecordController extends APIController //CDN고정관련 final public function cdnToggle(string $uid) { + $entity = $this->_model->getEntity($uid); try { - $entity = $this->_model->getEntity($uid); - $fixedRecordModel = new \App\Models\Cloudflare\API\FixedRecordModel(); + $fixedRecordModel = new FixedRecordModel(); if ($entity->fixed == 'on') { $entity->fixed = "off"; $this->_model->save($entity); @@ -246,8 +247,10 @@ class RecordController extends APIController } else { $entity->fixed = "on"; $this->_model->save($entity); - //throw new \Exception($entity); - $fixedRecordModel->insert(['host' => $entity->host]); + //cloudflarefixedrecord에 추가 + $fixedRecord = new \App\Entities\Cloudflare\FiexedRecordEntity(); + $fixedRecord->host = $entity->host; + $fixedRecordModel->insert($fixedRecord); Log::add("info", "{$entity->getTitle()}의 fixed : off=>on"); } $message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다."; diff --git a/app/Controllers/Common/CommonController.php b/app/Controllers/Common/CommonController.php index dc8b2ff..d43e6f4 100644 --- a/app/Controllers/Common/CommonController.php +++ b/app/Controllers/Common/CommonController.php @@ -85,9 +85,7 @@ class CommonController extends BaseController $this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => []]; helper(['form']); } - protected function insert_form_process() - { - } + protected function insert_form_process() {} final public function insert_form() { try { diff --git a/app/Entities/Cloudflare/FixedRecordEntity.php b/app/Entities/Cloudflare/FixedRecordEntity.php new file mode 100644 index 0000000..c0bd284 --- /dev/null +++ b/app/Entities/Cloudflare/FixedRecordEntity.php @@ -0,0 +1,25 @@ +attributes['uid']; + } + public function getTitle() + { + return $this->attributes['host']; + } + public function __toString() + { + return "uid:{$this->attributes['uid']}|host:{$this->attributes['host']}"; + } +} diff --git a/app/Libraries/Cloudflare/API/Record.php b/app/Libraries/Cloudflare/API/Record.php index 96e02df..1dcd353 100644 --- a/app/Libraries/Cloudflare/API/Record.php +++ b/app/Libraries/Cloudflare/API/Record.php @@ -75,15 +75,20 @@ class Record extends API public function update(\App\Entities\Cloudflare\API\RecordEntity $entity, array $fieldDatas): \App\Entities\Cloudflare\API\RecordEntity { //TTL값은 CDN(proxied)가 사용함일때는 무조건 1, 않함일때는 120이 적용 + $options = [ 'type' => isset($fieldDatas['type']) ? $fieldDatas['type'] : $entity->type, 'name' => isset($fieldDatas['host']) ? $fieldDatas['host'] : $entity->host, 'content' => isset($fieldDatas['content']) ? $fieldDatas['content'] : $entity->content, - 'proxied' => isset($fieldDatas['proxied']) && $fieldDatas['proxied'] === 'on' ? true : false + 'proxied' => $entity->proxied == 'on' ? true : false, + 'ttl' => $entity->ttl ]; - if (isset($entity->ttl) && $entity->ttl > 0) { - $options['ttl'] = $options['proxied'] ? 1 : 120; + $options['proxied'] = $entity->proxied == 'on' ? true : false; + if (isset($fieldDatas['proxied']) && $fieldDatas['proxied'] === 'on') { + $options['proxied'] = true; + $options['ttl'] = 1; } + //dd($options); // throw new \Exception(var_export($fieldDatas, true) . "