changed methods moved from Controller to Repository
Signed-off-by: tracer <tracer@24unix.net>
This commit is contained in:
parent
c9b1d097c1
commit
9b2c7f3495
|
@ -167,6 +167,7 @@ class BindAPI
|
||||||
echo COLOR_GREEN . "\t domains:create <name> {panel=<name>}" . PHP_EOL;
|
echo COLOR_GREEN . "\t domains:create <name> {panel=<name>}" . PHP_EOL;
|
||||||
echo COLOR_GREEN . "\t domains:update <ID> {name=<name>} {panel=<name>}" . PHP_EOL;
|
echo COLOR_GREEN . "\t domains:update <ID> {name=<name>} {panel=<name>}" . PHP_EOL;
|
||||||
echo COLOR_GREEN . "\t domains:delete <ID>" . PHP_EOL;
|
echo COLOR_GREEN . "\t domains:delete <ID>" . PHP_EOL;
|
||||||
|
echo COLOR_GREEN . "\t domains:dyndns hostname.domain.tld {A=<IPv4>} {AAAA=<IPv6>}" . PHP_EOL;
|
||||||
|
|
||||||
echo COLOR_YELLOW . "apikeys" . COLOR_DEFAULT . "\t API keys to access this server" . 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:list" . PHP_EOL;
|
||||||
|
@ -633,7 +634,7 @@ class BindAPI
|
||||||
|
|
||||||
$arguments = $this->parseArguments();
|
$arguments = $this->parseArguments();
|
||||||
|
|
||||||
$id = $this->arguments[1] ?? 0;
|
$id = intval(value: $this->arguments[1]) ?? 0;
|
||||||
$name = $arguments['name'] ?? '';
|
$name = $arguments['name'] ?? '';
|
||||||
$a = $arguments['a'] ?? '';
|
$a = $arguments['a'] ?? '';
|
||||||
$aaaa = $arguments['aaaa'] ?? '';
|
$aaaa = $arguments['aaaa'] ?? '';
|
||||||
|
@ -643,11 +644,11 @@ class BindAPI
|
||||||
echo 'An ID is required' . PHP_EOL;
|
echo 'An ID is required' . PHP_EOL;
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (!$this->panelController->findByID(id: $id)) {
|
if (!$this->panelRepository->findByID(id: $id)) {
|
||||||
echo "Panel with ID : $id doesn't exist." . PHP_EOL;
|
echo "Panel with ID : $id doesn't exist." . PHP_EOL;
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if ($this->panelController->update(id: $id, name: $name, a: $a, aaaa: $aaaa, apikey: $apikey) !== false) {
|
if ($this->panelRepository->update(id: $id, name: $name, a: $a, aaaa: $aaaa, apikey: $apikey) !== false) {
|
||||||
echo 'Panel has been updated' . PHP_EOL;
|
echo 'Panel has been updated' . PHP_EOL;
|
||||||
} else {
|
} else {
|
||||||
echo 'Error while updating domain server.' . PHP_EOL;
|
echo 'Error while updating domain server.' . PHP_EOL;
|
||||||
|
@ -986,6 +987,7 @@ class BindAPI
|
||||||
'create' => $this->handleDomainsCreate(),
|
'create' => $this->handleDomainsCreate(),
|
||||||
'update' => $this->handleDomainsUpdate(),
|
'update' => $this->handleDomainsUpdate(),
|
||||||
'delete' => $this->handleDomainsDelete(),
|
'delete' => $this->handleDomainsDelete(),
|
||||||
|
'dyndns' => $this->handleDomainsDynDns(),
|
||||||
};
|
};
|
||||||
} catch (UnhandledMatchError) {
|
} catch (UnhandledMatchError) {
|
||||||
echo "Unknown Command: $subcommand" . PHP_EOL;
|
echo "Unknown Command: $subcommand" . PHP_EOL;
|
||||||
|
@ -1348,4 +1350,56 @@ class BindAPI
|
||||||
{
|
{
|
||||||
$this->domainController->checkDomains();
|
$this->domainController->checkDomains();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws \DI\NotFoundException
|
||||||
|
* @throws \DI\DependencyException
|
||||||
|
*/
|
||||||
|
private function handleDomainsDynDns()
|
||||||
|
{
|
||||||
|
$hostname = $this->arguments[1] ?? '';
|
||||||
|
|
||||||
|
if (empty($hostname)) {
|
||||||
|
echo 'You need to supply at least the hostname' . PHP_EOL;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->config['verbose']) {
|
||||||
|
echo "Updating DynDNS host: $hostname" . PHP_EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
$nameserver = $this->nameserverRepository->findFirst();
|
||||||
|
|
||||||
|
if (!empty($nameserver->getAaaa())) {
|
||||||
|
$result = $this->apiController->sendCommand(
|
||||||
|
requestType: 'POST',
|
||||||
|
serverName : $nameserver->getName(),
|
||||||
|
versionIP : 6,
|
||||||
|
apiKey : $nameserver->getApikey(),
|
||||||
|
command : 'dyndns/' . $hostname,
|
||||||
|
serverType : 'nameserver');
|
||||||
|
} else {
|
||||||
|
$result = $this->apiController->sendCommand(
|
||||||
|
requestType: 'POST',
|
||||||
|
serverName : $nameserver->getName(),
|
||||||
|
versionIP : 4,
|
||||||
|
apiKey : $nameserver->getApikey(),
|
||||||
|
command : 'dyndns/' . $hostname,
|
||||||
|
serverType : 'nameserver');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($result['header'] == 200) {
|
||||||
|
if ($this->config['verbose']) {
|
||||||
|
$data = $result['data'];
|
||||||
|
$decodedData = json_decode(json: $data, associative: true);
|
||||||
|
echo $decodedData['message'] . PHP_EOL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo 'Something went wrong:' . PHP_EOL;
|
||||||
|
print_r(value: $result);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue