From a7d9c0bf5134d1e1ede78350bb1dfdc0eaae833c Mon Sep 17 00:00:00 2001 From: Mal <=> Date: Wed, 19 Aug 2020 21:06:45 +0200 Subject: [PATCH] Moved to folder backend --- .gitignore | 8 ++--- api/v1/index.php | 4 +-- .../classes/api/ApiBadRequestResponse.php | 0 .../classes/api/ApiJsonResponse.php | 0 {data => backend}/classes/api/ApiResponse.php | 0 .../classes/api/ApiSuccessResponse.php | 0 .../classes/api/ApiSvgResponse.php | 0 .../classes/api/ApiUnauthorizedResponse.php | 0 .../controller/FingerprintPostController.php | 0 .../controller/QrCodeGetController.php | 0 .../classes/controller/UserGetController.php | 0 .../controller/UserLoginPutController.php | 0 .../controller/UserLogoutPutController.php | 0 .../classes/core/AbstractController.php | 0 {data => backend}/classes/core/Autoloader.php | 4 +-- .../classes/core/DatabaseInterface.php | 4 +-- {data => backend}/classes/core/MimeType.php | 0 .../classes/core/MySqlDatabase.php | 35 +++++++------------ {data => backend}/classes/core/MySqlTable.php | 0 {data => backend}/classes/core/Password.php | 0 {data => backend}/classes/core/QrCode.php | 0 {data => backend}/classes/core/Router.php | 1 + .../classes/core/ServerStatus.php | 0 {data => backend}/classes/core/Session.php | 5 ++- {data => backend}/classes/core/Table.php | 2 +- .../classes/database/Fingerprint.php | 0 .../classes/database/Sharing.php | 0 {data => backend}/classes/database/User.php | 0 .../classes/exception/DatabaseException.php | 8 +++++ .../classes/exception/QrCodeException.php | 0 .../classes/exception/UserException.php | 0 backend/scripts/generate.php | 5 +++ data/classes/exception/DatabaseException.php | 7 ---- data/scripts/generate.php | 5 --- index.php | 4 +-- 35 files changed, 41 insertions(+), 51 deletions(-) rename {data => backend}/classes/api/ApiBadRequestResponse.php (100%) rename {data => backend}/classes/api/ApiJsonResponse.php (100%) rename {data => backend}/classes/api/ApiResponse.php (100%) rename {data => backend}/classes/api/ApiSuccessResponse.php (100%) rename {data => backend}/classes/api/ApiSvgResponse.php (100%) rename {data => backend}/classes/api/ApiUnauthorizedResponse.php (100%) rename {data => backend}/classes/controller/FingerprintPostController.php (100%) rename {data => backend}/classes/controller/QrCodeGetController.php (100%) rename {data => backend}/classes/controller/UserGetController.php (100%) rename {data => backend}/classes/controller/UserLoginPutController.php (100%) rename {data => backend}/classes/controller/UserLogoutPutController.php (100%) rename {data => backend}/classes/core/AbstractController.php (100%) rename {data => backend}/classes/core/Autoloader.php (98%) rename {data => backend}/classes/core/DatabaseInterface.php (95%) rename {data => backend}/classes/core/MimeType.php (100%) rename {data => backend}/classes/core/MySqlDatabase.php (90%) rename {data => backend}/classes/core/MySqlTable.php (100%) rename {data => backend}/classes/core/Password.php (100%) rename {data => backend}/classes/core/QrCode.php (100%) rename {data => backend}/classes/core/Router.php (96%) rename {data => backend}/classes/core/ServerStatus.php (100%) rename {data => backend}/classes/core/Session.php (96%) rename {data => backend}/classes/core/Table.php (99%) rename {data => backend}/classes/database/Fingerprint.php (100%) rename {data => backend}/classes/database/Sharing.php (100%) rename {data => backend}/classes/database/User.php (100%) create mode 100644 backend/classes/exception/DatabaseException.php rename {data => backend}/classes/exception/QrCodeException.php (100%) rename {data => backend}/classes/exception/UserException.php (100%) create mode 100644 backend/scripts/generate.php delete mode 100644 data/classes/exception/DatabaseException.php delete mode 100644 data/scripts/generate.php diff --git a/.gitignore b/.gitignore index 617d403..2cbd1f5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -data/classes/Setting.php -data/cache -data/tmp -data/qr +backend/classes/Setting.php +backend/cache +backend/tmp +backend/qr .idea diff --git a/api/v1/index.php b/api/v1/index.php index 730624f..c7654f4 100644 --- a/api/v1/index.php +++ b/api/v1/index.php @@ -1,8 +1,8 @@ connection = new PDO("mysql:host=$hostname;dbname=$database", $user, $password); + try { + $this->connection = new PDO("mysql:host=$hostname;dbname=$database", $user, $password); + } catch (Throwable $e) { + throw new DatabaseException('Couldn\'t connect to the database!'); + } } public function __destruct() @@ -24,15 +28,15 @@ final class MySqlDatabase implements DatabaseInterface $this->connection = null; } - /** - * {@inheritDoc} - */ public function Query(string $query, array $params = []): void { $this->cursor = $this->connection->prepare($query); if (!$this->cursor) { - throw new Exception('Initialization of database cursor failed'); + throw new DatabaseException( + 'Initialization of database cursor failed', + DatabaseException::CONNECTION_FAILED + ); } foreach ($params as $key => $param) { @@ -44,13 +48,10 @@ final class MySqlDatabase implements DatabaseInterface } if (!$this->cursor->execute()) { - throw new Exception($this->cursor->errorInfo()[2]); + throw new DatabaseException($this->cursor->errorInfo()[2], $this->cursor->errorInfo()[1]); } } - /** - * {@inheritDoc} - */ public function getResult(): array { $result = []; @@ -69,7 +70,7 @@ final class MySqlDatabase implements DatabaseInterface } /** - * Selects data from a table. + * Selects backend from a table. */ public function Select( string $tableName, @@ -167,13 +168,10 @@ final class MySqlDatabase implements DatabaseInterface $this->Query($query, $conditions); } - /** - * {@inheritDoc} - */ public function Insert(string $table, array $fields): ?int { if (count($fields) === 0) { - throw new Exception('Row to insert is empty!'); + throw new DatabaseException('Row to insert is empty!'); } $fieldNames = implode(',', array_keys($fields)); @@ -198,9 +196,6 @@ final class MySqlDatabase implements DatabaseInterface return $lastInsertedId; } - /** - * {@inheritDoc} - */ public function Update(string $table, array $fields, array $conditions): void { $conditionPairs = []; @@ -227,9 +222,6 @@ final class MySqlDatabase implements DatabaseInterface $this->Query($query, array_merge($fields, $conditions)); } - /** - * {@inheritDoc} - */ public function Count(string $table, array $conditions = []): int { $result = $this->Select($table, ['count(*)'], $conditions); @@ -260,9 +252,6 @@ final class MySqlDatabase implements DatabaseInterface $this->isTransactionOpen = false; } - /** - * {@inheritDoc} - */ public function GetLastInsertedId(): int { $this->Query('SELECT LAST_INSERT_ID() as ID'); diff --git a/data/classes/core/MySqlTable.php b/backend/classes/core/MySqlTable.php similarity index 100% rename from data/classes/core/MySqlTable.php rename to backend/classes/core/MySqlTable.php diff --git a/data/classes/core/Password.php b/backend/classes/core/Password.php similarity index 100% rename from data/classes/core/Password.php rename to backend/classes/core/Password.php diff --git a/data/classes/core/QrCode.php b/backend/classes/core/QrCode.php similarity index 100% rename from data/classes/core/QrCode.php rename to backend/classes/core/QrCode.php diff --git a/data/classes/core/Router.php b/backend/classes/core/Router.php similarity index 96% rename from data/classes/core/Router.php rename to backend/classes/core/Router.php index de16905..de22d40 100644 --- a/data/classes/core/Router.php +++ b/backend/classes/core/Router.php @@ -29,6 +29,7 @@ final class Router if (count($matches[0]) > 0) { $class = new ReflectionClass($params['controller']); + /** @var AbstractController $controller */ $controller = $class->newInstance($matches[0][0]); if ($this->requestBody !== null && $this->contentType !== null) { diff --git a/data/classes/core/ServerStatus.php b/backend/classes/core/ServerStatus.php similarity index 100% rename from data/classes/core/ServerStatus.php rename to backend/classes/core/ServerStatus.php diff --git a/data/classes/core/Session.php b/backend/classes/core/Session.php similarity index 96% rename from data/classes/core/Session.php rename to backend/classes/core/Session.php index 00fb91d..a09c28a 100644 --- a/data/classes/core/Session.php +++ b/backend/classes/core/Session.php @@ -24,10 +24,9 @@ final class Session } } - public function Destroy(): void + public function Destroy(): bool { - session_unset(); - session_destroy(); + return session_unset() && session_destroy(); } public function Login(string $usernameOrEmail, string $password): bool diff --git a/data/classes/core/Table.php b/backend/classes/core/Table.php similarity index 99% rename from data/classes/core/Table.php rename to backend/classes/core/Table.php index 1464659..60834e3 100644 --- a/data/classes/core/Table.php +++ b/backend/classes/core/Table.php @@ -236,7 +236,7 @@ abstract class Table } /** - * Checks if the index is a valid data type. + * Checks if the index is a valid backend type. */ public static function IsValidType(int $type): bool { diff --git a/data/classes/database/Fingerprint.php b/backend/classes/database/Fingerprint.php similarity index 100% rename from data/classes/database/Fingerprint.php rename to backend/classes/database/Fingerprint.php diff --git a/data/classes/database/Sharing.php b/backend/classes/database/Sharing.php similarity index 100% rename from data/classes/database/Sharing.php rename to backend/classes/database/Sharing.php diff --git a/data/classes/database/User.php b/backend/classes/database/User.php similarity index 100% rename from data/classes/database/User.php rename to backend/classes/database/User.php diff --git a/backend/classes/exception/DatabaseException.php b/backend/classes/exception/DatabaseException.php new file mode 100644 index 0000000..c4e6e3d --- /dev/null +++ b/backend/classes/exception/DatabaseException.php @@ -0,0 +1,8 @@ +