From 7dda80dcfd7f2c501043e3da81b78c94ad5d1b40 Mon Sep 17 00:00:00 2001 From: tracer Date: Mon, 21 Feb 2022 14:11:47 +0100 Subject: [PATCH] changed call from Controller to repository Signed-off-by: tracer --- src/Controller/BindAPI.php | 56 ++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/src/Controller/BindAPI.php b/src/Controller/BindAPI.php index 4f60d7f..07d9fe2 100755 --- a/src/Controller/BindAPI.php +++ b/src/Controller/BindAPI.php @@ -162,11 +162,11 @@ class BindAPI echo COLOR_YELLOW . "domains" . COLOR_DEFAULT . " domains this server is responsible for" . PHP_EOL; echo COLOR_GREEN . "\t domains:list" . PHP_EOL; - echo COLOR_GREEN . "\t domains:create {panel=} | {A=} {AAAA=}" . PHP_EOL; - echo COLOR_GREEN . "\t domains:update {name=} {panel=} | {A=} {AAAA=}" . PHP_EOL; + echo COLOR_GREEN . "\t domains:create {panel=}" . PHP_EOL; + echo COLOR_GREEN . "\t domains:update {name=} {panel=}" . PHP_EOL; echo COLOR_GREEN . "\t domains:delete " . PHP_EOL; - echo COLOR_YELLOW . "apikeys" . COLOR_DEFAULT . "\t API keys for other nameservers" . PHP_EOL; + echo COLOR_YELLOW . "apikeys" . COLOR_DEFAULT . "\t API keys to access this server" . PHP_EOL; echo COLOR_GREEN . "\t apikeys:list" . PHP_EOL; echo COLOR_GREEN . "\t apikeys:create {name=}" . PHP_EOL; echo COLOR_GREEN . "\t apikeys:update {name=}" . PHP_EOL; @@ -296,7 +296,12 @@ class BindAPI foreach ($domains as $domain) { if ($this->isValidSecondLevelDomain(domainName: $domain->domain, panel: $panel->getName(), parent: $domain->id_parent_domain)) { echo COLOR_DEFAULT . "Domain: " . COLOR_YELLOW . str_pad(string: $domain->domain, length: $maxDomainName); - $this->checkNS(domainName: $domain->domain, panel: $panel); + try { + $this->checkNS(domainName: $domain->domain, panel: $panel); + } catch (DependencyException|NotFoundException $e) { + print($e->getMessage()); + exit(1); + } $domainCount++; } } @@ -423,7 +428,8 @@ class BindAPI echo $e->getMessage(); exit(1); } - print_r($create); + print_r(value: $create); + die("make error handling"); } break; default: @@ -667,9 +673,9 @@ class BindAPI } } else { if ($type == 'panel') { - $servers = $this->panelController->findAll(); + $servers = $this->panelRepository->findAll(); } else { - $servers = $this->nameserverController->findAll(); + $servers = $this->nameserverRepository->findAll(); } foreach ($servers as $server) { if (!$this->checkPing(server: $server, type: $type)) { @@ -704,24 +710,24 @@ class BindAPI } /** - * @param array $server - * @param String $type + * @param \App\Entity\Panel|\App\Entity\Nameserver $server + * @param String $type * * @return bool */ - public function checkPing(array $server, string $type): bool + public function checkPing(Panel|Nameserver $server, string $type): bool { $error = false; try { if ($type == 'nameserver') { - $maxName = $this->nameserverController->getLongestEntry(field: 'name'); - $maxA = $this->nameserverController->getLongestEntry(field: 'a'); - $maxAAAA = $this->nameserverController->getLongestEntry(field: 'aaaa'); + $maxName = $this->nameserverRepository->getLongestEntry(field: 'name'); + $maxA = $this->nameserverRepository->getLongestEntry(field: 'a'); + $maxAAAA = $this->nameserverRepository->getLongestEntry(field: 'aaaa'); } else { - $maxName = $this->panelController->getLongestEntry(field: 'name'); - $maxA = $this->panelController->getLongestEntry(field: 'a'); - $maxAAAA = $this->panelController->getLongestEntry(field: 'aaaa'); + $maxName = $this->panelRepository->getLongestEntry(field: 'name'); + $maxA = $this->panelRepository->getLongestEntry(field: 'a'); + $maxAAAA = $this->panelRepository->getLongestEntry(field: 'aaaa'); } } catch (DependencyException|NotFoundException $e) { echo $e->getMessage(); @@ -729,10 +735,10 @@ class BindAPI } if ($this->config['verbose']) { - print(COLOR_YELLOW . str_pad(string: $server['name'], length: $maxName)); + print(COLOR_YELLOW . str_pad(string: $server->getName(), length: $maxName)); } - $a = $server['a'] ?? ''; + $a = $server->getA() ?? ''; if (!empty($a)) { if ($this->config['verbose']) { echo COLOR_DEFAULT . ' ' . str_pad(string: $a, length: $maxA, pad_type: STR_PAD_LEFT) . ' '; @@ -740,9 +746,9 @@ class BindAPI try { if ($result = $this->apiController->sendCommand( requestType: 'GET', - serverName: $server['name'], + serverName: $server->getName(), versionIP: 4, - apiKey: $server['apikey'], + apiKey: $server->getApikey(), command: 'ping', serverType: $type)) { if ($this->config['verbose']) { @@ -759,7 +765,7 @@ class BindAPI echo $e->getMessage(); } } - $aaaa = $server['aaaa'] ?? ''; + $aaaa = $server->getAaaa() ?? ''; if (!empty($aaaa)) { if ($this->config['verbose']) { echo COLOR_DEFAULT . ' ' . str_pad(string: $aaaa, length: $maxAAAA, pad_type: STR_PAD_LEFT) . ' '; @@ -767,9 +773,9 @@ class BindAPI try { if ($result = $this->apiController->sendCommand( requestType: 'GET', - serverName: $server['name'], + serverName: $server->getName(), versionIP: 6, - apiKey: $server['apikey'], + apiKey: $server->getApikey(), command: 'ping', serverType: $type)) { if ($this->config['verbose']) { @@ -1083,6 +1089,7 @@ class BindAPI exit(1); } + $content = []; if (!empty($panel)) { $panel = $this->panelRepository->findByName(name: $panel); @@ -1104,7 +1111,8 @@ class BindAPI } } if (empty($name) && empty($content)) { - echo 'Either a new name or new content (panel or addresses) is needed.' . PHP_EOL; + echo 'No name or panel given, just recreate the config file' . PHP_EOL; + $this->domainController->createSlaveZoneFile(domain: $domain); exit(1); } if (empty($content)) {