Compare commits
No commits in common. "36e376337ee61f1a8c3dfea398284bff20657c91" and "073d9cae9e166f49ffa5c64fcc232719d40469f4" have entirely different histories.
36e376337e
...
073d9cae9e
|
@ -1,90 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Apikey
|
||||
{
|
||||
private int $id;
|
||||
private string $name;
|
||||
private string $apiTokenPrefix;
|
||||
private string $apiToken;
|
||||
|
||||
public function __construct(string $name, string $apiTokenPrefix, string $apiToken, int $id = 0)
|
||||
{
|
||||
$this->id = $id;
|
||||
$this->name = $name;
|
||||
$this->apiTokenPrefix = $apiTokenPrefix;
|
||||
$this->apiToken = $apiToken;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getApiToken(): string
|
||||
{
|
||||
return $this->apiToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getApiTokenPrefix(): string
|
||||
{
|
||||
return $this->apiTokenPrefix;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getId(): int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*/
|
||||
public function setId(int $id): void
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $apiTokenPrefix
|
||||
*/
|
||||
public function setApiTokenPrefix(string $apiTokenPrefix): void
|
||||
{
|
||||
$this->apiTokenPrefix = $apiTokenPrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $apiToken
|
||||
*/
|
||||
public function setApiToken(string $apiToken): void
|
||||
{
|
||||
$this->apiToken = $apiToken;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param String $name
|
||||
*/
|
||||
public function setName(string $name): void
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,108 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Nameserver
|
||||
{
|
||||
private int $id;
|
||||
private String $name;
|
||||
private String $a;
|
||||
private String $aaaa;
|
||||
private String $apikey;
|
||||
|
||||
public function __construct(String $name, int $id = 0, String $a = '', String $aaaa = '', String $apikey = '')
|
||||
{
|
||||
$this->id = $id;
|
||||
$this->name = $name;
|
||||
$this->a = $a;
|
||||
$this->aaaa = $aaaa;
|
||||
$this->apikey = $apikey;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getA(): string
|
||||
{
|
||||
return $this->a;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getAaaa(): string
|
||||
{
|
||||
return $this->aaaa;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getApikey(): string
|
||||
{
|
||||
return $this->apikey;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getId(): int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*/
|
||||
public function setId(int $id): void
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param String $apikey
|
||||
*/
|
||||
public function setApikey(string $apikey): void
|
||||
{
|
||||
$this->apikey = $apikey;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param String $name
|
||||
*/
|
||||
public function setName(string $name): void
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $a
|
||||
*/
|
||||
public function setA(string $a): void
|
||||
{
|
||||
$this->a = $a;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $aaaa
|
||||
*/
|
||||
public function setAaaa(string $aaaa): void
|
||||
{
|
||||
$this->aaaa = $aaaa;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,108 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Panel
|
||||
{
|
||||
private int $id;
|
||||
private String $name;
|
||||
private String $a;
|
||||
private String $aaaa;
|
||||
private String $apikey;
|
||||
|
||||
public function __construct(String $name, int $id = 0, String $a = '', String $aaaa = '', String $apikey = '')
|
||||
{
|
||||
$this->id = $id;
|
||||
$this->name = $name;
|
||||
$this->a = $a;
|
||||
$this->aaaa = $aaaa;
|
||||
$this->apikey = $apikey;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getA(): string
|
||||
{
|
||||
return $this->a;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getAaaa(): string
|
||||
{
|
||||
return $this->aaaa;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getApikey(): string
|
||||
{
|
||||
return $this->apikey;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getId(): int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*/
|
||||
public function setId(int $id): void
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return String
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param String $apikey
|
||||
*/
|
||||
public function setApikey(string $apikey): void
|
||||
{
|
||||
$this->apikey = $apikey;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param String $name
|
||||
*/
|
||||
public function setName(string $name): void
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $a
|
||||
*/
|
||||
public function setA(string $a): void
|
||||
{
|
||||
$this->a = $a;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param String $aaaa
|
||||
*/
|
||||
public function setAaaa(string $aaaa): void
|
||||
{
|
||||
$this->aaaa = $aaaa;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,191 +0,0 @@
|
|||
<?php declare(strict_types=1);
|
||||
namespace App\Repository;
|
||||
|
||||
error_reporting(error_level: E_ALL);
|
||||
|
||||
use App\Controller\DatabaseConnection;
|
||||
use App\Controller\PanelController;
|
||||
use App\Entity\Apikey;
|
||||
use Exception;
|
||||
use PDO;
|
||||
use PDOException;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ApikeyRepository
|
||||
{
|
||||
public function __construct(private DatabaseConnection $databaseConnection, PanelController $panelController)
|
||||
{}
|
||||
|
||||
|
||||
/**
|
||||
* @return array|false
|
||||
*/
|
||||
public function findAll(): bool|array
|
||||
{
|
||||
$sql = "
|
||||
SELECT id, name, api_token_prefix, api_token
|
||||
FROM " . DatabaseConnection::TABLE_APIKEYS;
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->execute();
|
||||
|
||||
$apikeys = [];
|
||||
|
||||
while ($result = $statement->fetch()) {
|
||||
$apikey = new Apikey(name: $result['name'], apiTokenPrefix: $result['api_token_prefix'], apiToken: $result['api_token'], id: $result['id']);
|
||||
$apikeys[] = $apikey;
|
||||
}
|
||||
return $apikeys;
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Int $id
|
||||
*
|
||||
* @return \App\Entity\Apikey|bool
|
||||
*/
|
||||
public function findByID(Int $id): Apikey|bool
|
||||
{
|
||||
$sql = "
|
||||
SELECT id, name, api_token_prefix, api_token
|
||||
FROM " . DatabaseConnection::TABLE_APIKEYS . "
|
||||
WHERE id = :id;
|
||||
";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: ':id', var: $id);
|
||||
$statement->execute();
|
||||
if ($result = $statement->fetch(mode: PDO::FETCH_ASSOC)) {
|
||||
return new Apikey(name: $result['name'], apiTokenPrefix: $result['api_token_prefix'], apiToken: $result['api_token'], id: $result['id']);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param String $prefix
|
||||
*
|
||||
* @return \App\Entity\Apikey|bool
|
||||
*/
|
||||
public function findByPrefix(String $prefix): Apikey|bool
|
||||
{
|
||||
$sql = "
|
||||
SELECT name, api_token
|
||||
FROM " . DatabaseConnection::TABLE_APIKEYS . "
|
||||
WHERE api_token_prefix = :prefix";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: ':prefix', var: $prefix);
|
||||
$statement->execute();
|
||||
if ($result = $statement->fetch(mode: PDO::FETCH_ASSOC)) {
|
||||
return new Apikey(name: $result['name'], apiTokenPrefix: $result['api_token_prefix'], apiToken: $result['api_token_result'], id: $result['id']);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return array|void
|
||||
*/
|
||||
public function create(String $name = '')
|
||||
{
|
||||
$tokenPrefix = uniqid();
|
||||
$result['tokenPrefix'] = $tokenPrefix;
|
||||
try {
|
||||
$key = bin2hex(string: random_bytes(length: 24));
|
||||
$result['key'] = $key;
|
||||
} catch (Exception $e) {
|
||||
echo $e->getMessage() . PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
$token = password_hash(password: $tokenPrefix . '.' . $key, algo: PASSWORD_ARGON2ID);
|
||||
|
||||
$sql = "
|
||||
INSERT INTO " . DatabaseConnection::TABLE_APIKEYS . " (name, api_token_prefix, api_token)
|
||||
VALUES (:name, :token_prefix, :token)";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: ':token_prefix', var: $tokenPrefix);
|
||||
$statement->bindParam(param: ':token', var: $token);
|
||||
$statement->bindParam(param: ':name', var: $name);
|
||||
|
||||
$statement->execute();
|
||||
$result['row'] = $this->databaseConnection->getConnection()->lastInsertId();
|
||||
return $result;
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Int $id
|
||||
* @param String $name
|
||||
*
|
||||
* @return false|int
|
||||
*/
|
||||
public function update(int $id, string $name): bool|int
|
||||
{
|
||||
$current = $this->findByID(id: $id);
|
||||
|
||||
if (empty($name)) {
|
||||
$name = $current['name'];
|
||||
}
|
||||
|
||||
$sql = "
|
||||
UPDATE " . DatabaseConnection::TABLE_APIKEYS . " SET
|
||||
name = :name
|
||||
WHERE id = :id";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: 'id', var: $id);
|
||||
$statement->bindParam(param: 'name', var: $name);
|
||||
$statement->execute();
|
||||
|
||||
return $statement->rowCount();
|
||||
} catch (PDOException $e) {
|
||||
print($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $id
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function delete($id): int
|
||||
{
|
||||
$sql = "
|
||||
DELETE FROM " . DatabaseConnection::TABLE_APIKEYS . "
|
||||
WHERE id = :id";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: 'id', var: $id);
|
||||
$statement->execute();
|
||||
return $statement->rowCount();
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,235 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
|
||||
use App\Controller\DatabaseConnection;
|
||||
use App\Entity\Domain;
|
||||
use PDO;
|
||||
use PDOException;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class DomainRepository
|
||||
{
|
||||
public function __construct(private DatabaseConnection $databaseConnection)
|
||||
{}
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function findAll(): array
|
||||
{
|
||||
$domains = [];
|
||||
$sql = "
|
||||
SELECT id, name, panel_id, a, aaaa
|
||||
FROM " . DatabaseConnection::TABLE_DOMAINS . "
|
||||
ORDER BY name";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->execute();
|
||||
while ($result = $statement->fetch(mode: PDO::FETCH_ASSOC)) {
|
||||
$domain = new Domain(name: $result['name'], id: $result['id'], panelID: $result['panel_id'], a: $result['a'], aaaa: $result['aaaa']);
|
||||
$domains[] = $domain;
|
||||
}
|
||||
return $domains;
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*
|
||||
* @return bool|\App\Entity\Domain
|
||||
*/
|
||||
public function findByID(int $id): bool|Domain
|
||||
{
|
||||
$sql = "
|
||||
SELECT id, name, panel_id, a, aaaa
|
||||
FROM . " . DatabaseConnection::TABLE_DOMAINS . "
|
||||
WHERE id = :id";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: ':id', var: $id);
|
||||
$statement->execute();
|
||||
if ($result = $statement->fetch(mode: PDO::FETCH_ASSOC)) {
|
||||
return new Domain(name: $result['name'], panelID: $result['panel_id'], a: $result['a'], aaaa: $result['aaaa']);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param String $name
|
||||
*
|
||||
* @return \App\Entity\Domain|bool
|
||||
*/
|
||||
public function findByName(string $name): Domain|bool
|
||||
{
|
||||
$sql = "
|
||||
SELECT id, name, panel_id, a, aaaa
|
||||
FROM " . DatabaseConnection::TABLE_DOMAINS . "
|
||||
WHERE name = :name";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: ':name', var: $name);
|
||||
$statement->execute();
|
||||
if ($result = $statement->fetch(mode: PDO::FETCH_ASSOC)) {
|
||||
return new Domain(name: $result['name'], panelID: $result['panel_id'], a: $result['a'], aaaa: $result['aaaa']);
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param String $name
|
||||
* @param int $panelID
|
||||
* @param String $a
|
||||
* @param String $aaaa
|
||||
*
|
||||
* @return string|false
|
||||
*/
|
||||
public function insert(string $name, int $panelID, string $a, string $aaaa): bool|string
|
||||
{
|
||||
print("here");
|
||||
$sql = "
|
||||
INSERT INTO " . DatabaseConnection::TABLE_DOMAINS . " (name, panel_id, a, aaaa)
|
||||
VALUES (:name, :panel_id, :a, :aaaa)";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: ':name', var: $name);
|
||||
$statement->bindParam(param: ':panel_id', var: $panelID);
|
||||
$statement->bindParam(param: ':a', var: $a);
|
||||
$statement->bindParam(param: ':aaaa', var: $aaaa);
|
||||
$statement->execute();
|
||||
|
||||
return $this->databaseConnection->getConnection()->lastInsertId();
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Int $id
|
||||
* @param String $name
|
||||
* @param int $panelID
|
||||
* @param String $a
|
||||
* @param String $aaaa
|
||||
*
|
||||
* @return false|int
|
||||
*/
|
||||
public function update(int $id, string $name, int $panelID, string $a, string $aaaa): bool|int
|
||||
{
|
||||
$current = $this->findByID(id: $id);
|
||||
|
||||
/* doesn't work
|
||||
$statement = "
|
||||
INSERT INTO domains(id, name, a, aaaa)
|
||||
VALUES(:id, :name, :a, :aaaa)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
name=COALESCE(VALUES(name), :name),
|
||||
a=COALESCE(:a, a),
|
||||
aaaa=COALESCE(:aaaa, aaaa)";
|
||||
*/
|
||||
|
||||
if (empty($name)) {
|
||||
$name = $current['name'];
|
||||
}
|
||||
if (empty($panelID)) {
|
||||
$panelID = $current['panel_id'];
|
||||
}
|
||||
$panelID = intval(value: $panelID);
|
||||
if (empty($a)) {
|
||||
$a = $current['a'];
|
||||
}
|
||||
if (empty($aaaa)) {
|
||||
$aaaa = $current['aaaa'];
|
||||
}
|
||||
|
||||
$sql = "
|
||||
UPDATE " . DatabaseConnection::TABLE_DOMAINS . " SET
|
||||
name = :name,
|
||||
panel_id = :panel_id,
|
||||
a = :a,
|
||||
aaaa = :aaaa
|
||||
WHERE id = :id";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: 'id', var: $id);
|
||||
$statement->bindParam(param: 'name', var: $name);
|
||||
$statement->bindParam(param: 'panel_id', var: $panelID);
|
||||
$statement->bindParam(param: 'a', var: $a);
|
||||
$statement->bindParam(param: 'aaaa', var: $aaaa);
|
||||
$statement->execute();
|
||||
|
||||
return $statement->rowCount();
|
||||
} catch (PDOException $e) {
|
||||
print($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $id
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function delete($id): int
|
||||
{
|
||||
$sql = "
|
||||
DELETE FROM " . DatabaseConnection::TABLE_DOMAINS . "
|
||||
WHERE id = :id";
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->bindParam(param: 'id', var: $id);
|
||||
$statement->execute();
|
||||
|
||||
return $statement->rowCount();
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param String $field
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getLongestEntry(String $field): int
|
||||
{
|
||||
$sql = "
|
||||
SELECT MAX(LENGTH(" . $field . ")) as length FROM " . DatabaseConnection::TABLE_DOMAINS;
|
||||
|
||||
try {
|
||||
$statement = $this->databaseConnection->getConnection()->prepare(query: $sql);
|
||||
$statement->execute();
|
||||
$result = $statement->fetch();
|
||||
return $result['length'];
|
||||
} catch (PDOException $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue