From 9430f3c74c733faea0ad382a90ca77bec94cc13e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Wed, 7 Apr 2021 12:45:27 +0200 Subject: [PATCH] =?UTF-8?q?Eine=20fehlende=20Datenbank=20l=C3=B6st=20schon?= =?UTF-8?q?=20in=20der=20Erstellung=20des=20Objektes=20einen=20Fehler=20au?= =?UTF-8?q?s.=20Es=20wurden=20noch=20kleinere=20Fehler=20beseitigt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/WorkingHoursViewController.php | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/api/src/Controller/WorkingHoursViewController.php b/api/src/Controller/WorkingHoursViewController.php index 89bd57e..fbd3b45 100644 --- a/api/src/Controller/WorkingHoursViewController.php +++ b/api/src/Controller/WorkingHoursViewController.php @@ -6,6 +6,7 @@ namespace TorstenHettstedt\TimekeepingApi\Controller; use Exception; use PDO; use Psr\Container\ContainerInterface; +use Slim\Exception\HttpInternalServerErrorException; use Slim\Psr7\Request; use Slim\Psr7\Response; use TorstenHettstedt\TimekeepingApi\Models\WorkingHoursView; @@ -15,7 +16,7 @@ use TorstenHettstedt\TimekeepingApi\Repositories\WorkingHoursYearlyViewRepositor class WorkingHoursViewController { - protected PDO $databases; + protected PDO $databases; /** * @var ContainerInterface @@ -29,7 +30,8 @@ class WorkingHoursViewController * * @throws NotDatabasesException */ - public function __construct(ContainerInterface $container) { + public function __construct(ContainerInterface $container) + { $this->container = $container; if ($container->has('databases') === false) { throw new NotDatabasesException('Datenbank ist nicht Vorhanden'); @@ -44,13 +46,18 @@ class WorkingHoursViewController * * @return Response * + * @throws HttpInternalServerErrorException * @noinspection PhpUnusedParameterInspection - * @throws Exception */ public function browseWeekly(Request $request, Response $response, array $args): Response { $repository = new WorkingHoursWeeklyViewRepository($this->container->get('databases')); - return $this->printResponse($response, $repository->findAll()); + try { + return $this->printResponse($response, $repository->findAll()); + } catch (Exception $exception) { + throw new HttpInternalServerErrorException($request, + 'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception); + } } /** @@ -60,13 +67,18 @@ class WorkingHoursViewController * * @return Response * + * @throws HttpInternalServerErrorException * @noinspection PhpUnusedParameterInspection - * @throws Exception */ public function browseMonthly(Request $request, Response $response, array $args): Response { $repository = new WorkingHoursMonthlyViewRepository($this->container->get('databases')); - return $this->printResponse($response, $repository->findAll()); + try { + return $this->printResponse($response, $repository->findAll()); + } catch (Exception $exception) { + throw new HttpInternalServerErrorException($request, + 'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception); + } } /** @@ -76,22 +88,27 @@ class WorkingHoursViewController * * @return Response * + * @throws HttpInternalServerErrorException * @noinspection PhpUnusedParameterInspection - * @throws Exception */ public function browseYearly(Request $request, Response $response, array $args): Response { $repository = new WorkingHoursYearlyViewRepository($this->container->get('databases')); - return $this->printResponse($response, $repository->findAll()); + try { + return $this->printResponse($response, $repository->findAll()); + } catch (Exception $exception) { + throw new HttpInternalServerErrorException($request, + 'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception); + } } /** - * @param Response $response - * @param WorkingHoursView[] $data + * @param Response $response + * @param WorkingHoursView[] $data * * @return Response */ - protected function printResponse( Response $response, array $data): Response + protected function printResponse(Response $response, array $data): Response { $payload = json_encode($data);