From d5aa47ff54506c60ce27934448d24c3ccb837b78 Mon Sep 17 00:00:00 2001 From: Mal <=> Date: Thu, 20 Aug 2020 15:45:59 +0200 Subject: [PATCH] Endpoint for user deletion added --- .../controller/UserDeleteController.php | 38 +++++++++++++++++++ backend/classes/core/Autoloader.php | 1 + backend/classes/core/Table.php | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 backend/classes/controller/UserDeleteController.php diff --git a/backend/classes/controller/UserDeleteController.php b/backend/classes/controller/UserDeleteController.php new file mode 100644 index 0000000..f2a83ac --- /dev/null +++ b/backend/classes/controller/UserDeleteController.php @@ -0,0 +1,38 @@ +userId = (int)$this->getUrlParamInt('userId'); + } + + public function handle(): void + { + parent::handle(); + + if ($this->response->getStatus() !== ServerStatus::OK) { + return; + } + + try { + $user = new User($this->userId); + $user->Delete(); + + $this->response = new ApiJsonResponse(); + $this->response->setParameter('success', true); + } catch (Throwable $e) { + $this->response = new ApiJsonResponse(ServerStatus::BAD_REQUEST); + $this->response->setParameter('success', false); + $this->response->setMessage($e->getMessage()); + } + } +} \ No newline at end of file diff --git a/backend/classes/core/Autoloader.php b/backend/classes/core/Autoloader.php index cc66e16..097fb89 100644 --- a/backend/classes/core/Autoloader.php +++ b/backend/classes/core/Autoloader.php @@ -72,6 +72,7 @@ class Autoloader 'GET' => [], 'POST' => [], 'PUT' => [], + 'DELETE' => [], ]; foreach ($controllersResult as $className => $path) { diff --git a/backend/classes/core/Table.php b/backend/classes/core/Table.php index 60834e3..0641608 100644 --- a/backend/classes/core/Table.php +++ b/backend/classes/core/Table.php @@ -116,7 +116,7 @@ abstract class Table $result = $this->database->getResult(); if (count($result) === 0) { - throw new Exception('No table entry with id ' . $id . ' found!'); + throw new Exception(sprintf('No %s with id %d found!', $this->tableName, $id)); } foreach ($result[0] as $field => $value) {