_className .= '/API'; $this->_viewPath = strtolower($this->_className); } final protected function getAuthModel(): AuthModel { return is_null($this->_authModel) ? new AuthModel() : $this->_authModel; } final protected function getAccountModel(): AccountModel { return is_null($this->_accountModel) ? new AccountModel() : $this->_accountModel; } final protected function getZoneModel(): ZoneModel { return is_null($this->_zoneModel) ? new ZoneModel() : $this->_zoneModel; } final protected function getRecordModel(): RecordModel { return is_null($this->_recordModel) ? new RecordModel() : $this->_recordModel; } //Zone입력 final protected function insert_Zone( \App\Entities\Cloudflare\API\AccountEntity $account, string $domain ): \App\Entities\Cloudflare\API\ZoneEntity { $fieldDatas = array('account_uid' => $account->getPrimaryKey(), 'domain' => $domain); $api = new \App\Libraries\Cloudflare\API\Zone($account); $zone = $api->insert($fieldDatas); if (!$this->getZoneModel()->save($zone)) { Log::add("error", __FUNCTION__ . "에서 호출:" . $this->getZoneModel()->getLastQuery()); Log::add("error", implode("\n", $this->getZoneModel()->errors())); throw new \Exception(__FUNCTION__ . " 오류 발생.\n" . var_export($this->getZoneModel()->errors(), true)); } Log::add("info", "Zone: {$zone->getTitle()} 등록"); return $zone; } //Record입력 final protected function insert_Host( \App\Entities\Cloudflare\API\ZoneEntity $zone, string $host, string $type, string $content, string $proxied ): \App\Entities\Cloudflare\API\RecordEntity { $fieldDatas = array('zone_uid' => $zone->getPrimaryKey(), 'host' => $host); $fieldDatas['type'] = $type; $fieldDatas['content'] = $content; $fieldDatas['proxied'] = $proxied; $api = new \App\Libraries\Cloudflare\API\Record($zone); $record = $api->insert($fieldDatas); $record->fixed = 'off'; //초기값 if (!$this->getRecordModel()->save($record)) { Log::add("error", __FUNCTION__ . "에서 호출:" . $this->getRecordModel()->getLastQuery()); Log::add("error", implode("\n", $this->getRecordModel()->errors())); throw new \Exception(__FUNCTION__ . " 오류 발생.\n" . var_export($this->getRecordModel()->errors(), true)); } Log::add("info", "Host: {$record->getTitle()} 등록"); return $record; } //Sync관련 protected function sync_process($entity) { return $entity; } protected function sync_procedure($uid) { $entity = $this->_model->getEntity($uid); try { $entity = $this->sync_process($entity); return alert_CommonHelper("{$this->_viewDatas['title']} " . __FUNCTION__ . " 완료하였습니다.", session()->get(RETURN_URL)); } catch (\Exception $e) { return alert_CommonHelper($e->getMessage(), 'back'); } } //Reload관련 protected function reload_process($entity) { return $entity; } protected function reload_procedure($uid) { $entity = $this->_model->getEntity($uid); try { $entity = $this->reload_process($entity); $message = __FUNCTION__ . " 완료하였습니다."; Log::save("{$this->_viewDatas['title']} {$message}"); return alert_CommonHelper("{$this->_viewDatas['title']} " . __FUNCTION__ . " 완료하였습니다.", session()->get(RETURN_URL)); } catch (\Exception $e) { $message = "{$entity->getTitle()} " . __FUNCTION__ . " 실패하였습니다."; Log::add("warning", $e->getMessage()); Log::save("{$this->_viewDatas['title']} {$message}", false); return alert_CommonHelper($e->getMessage(), 'back'); } } }