Refactor Classes
This commit is contained in:
@@ -4,7 +4,9 @@ namespace TorstenHettstedt\TimekeepingApi\Controller;
|
||||
|
||||
use JsonSerializable;
|
||||
use PDO;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use Slim\Psr7\Response;
|
||||
|
||||
abstract class AbstractController
|
||||
@@ -18,6 +20,8 @@ abstract class AbstractController
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @throws NotDatabasesException
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function __construct(ContainerInterface $container)
|
||||
{
|
||||
@@ -34,7 +38,8 @@ abstract class AbstractController
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
protected function printResponse(Response $response, mixed $data, int $status_code): Response {
|
||||
protected function printResponse(Response $response, mixed $data, int $status_code): Response
|
||||
{
|
||||
$payload = json_encode($data);
|
||||
|
||||
$response->getBody()->write($payload);
|
||||
|
||||
@@ -11,6 +11,7 @@ use TorstenHettstedt\TimekeepingApi\Middleware\OriginAccessControlHandler;
|
||||
|
||||
class PreflightController
|
||||
{
|
||||
/** @noinspection PhpUnused */
|
||||
public function preflight(Request $request, Response $response): ResponseInterface
|
||||
{
|
||||
return (new OriginAccessControlHandler())->originAccessControl($request, $response);
|
||||
|
||||
@@ -21,9 +21,9 @@ class WorkingHoursController extends AbstractController
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param mixed[] $args
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param array<string, mixed> $args
|
||||
*
|
||||
* @return Response
|
||||
*
|
||||
@@ -44,9 +44,9 @@ class WorkingHoursController extends AbstractController
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param mixed[] $args
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param array<string, mixed> $args
|
||||
*
|
||||
* @return Response
|
||||
*
|
||||
@@ -59,21 +59,29 @@ class WorkingHoursController extends AbstractController
|
||||
$repository = new WorkingHoursRepository($this->databases);
|
||||
$queryParams = $request->getQueryParams();
|
||||
try {
|
||||
return $this->printResponse($response, $repository->findFiltered(
|
||||
$queryParams['start-date'] ?? null,
|
||||
$queryParams['end-date'] ?? null
|
||||
), StatusCodeInterface::STATUS_OK);
|
||||
return $this->printResponse(
|
||||
$response,
|
||||
$repository->findFiltered(
|
||||
$queryParams['start-date'] ?? null,
|
||||
$queryParams['end-date'] ?? null
|
||||
),
|
||||
StatusCodeInterface::STATUS_OK
|
||||
);
|
||||
} catch (RepositoryBadWhereDataException $exception) {
|
||||
throw new HttpBadRequestException($request, 'Ein Wert für das Datum im Query ist ungültig', $exception);
|
||||
} catch (Exception $exception) {
|
||||
throw new HttpInternalServerErrorException($request, 'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception);
|
||||
throw new HttpInternalServerErrorException(
|
||||
$request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank',
|
||||
$exception
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param mixed[] $args
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param array<string, mixed> $args
|
||||
*
|
||||
* @return Response
|
||||
*
|
||||
@@ -88,14 +96,18 @@ class WorkingHoursController extends AbstractController
|
||||
} catch (RepositoryRecordNotFoundException $exception) {
|
||||
throw new HttpNotFoundException($request, 'Der Eintrag ist nicht vorhanden.', $exception);
|
||||
} catch (Exception $exception) {
|
||||
throw new HttpInternalServerErrorException($request, 'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception);
|
||||
throw new HttpInternalServerErrorException(
|
||||
$request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank',
|
||||
$exception
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param mixed[] $args
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param array<string, mixed> $args
|
||||
*
|
||||
* @return Response
|
||||
*
|
||||
@@ -114,7 +126,11 @@ class WorkingHoursController extends AbstractController
|
||||
} catch (RepositoryRecordAlreadyExistException $exception) {
|
||||
throw new HttpConflictRequestException($request, 'Der Eintrag ist schon vorhanden.', $exception);
|
||||
} catch (Exception $exception) {
|
||||
throw new HttpInternalServerErrorException($request, 'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception);
|
||||
throw new HttpInternalServerErrorException(
|
||||
$request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank',
|
||||
$exception
|
||||
);
|
||||
}
|
||||
return $this->printResponse($response, $model, StatusCodeInterface::STATUS_CREATED);
|
||||
}
|
||||
|
||||
@@ -15,9 +15,9 @@ use TorstenHettstedt\TimekeepingApi\Repositories\WorkingHoursYearlyViewRepositor
|
||||
class WorkingHoursViewController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param mixed[] $args
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param array<string, mixed> $args
|
||||
*
|
||||
* @return Response
|
||||
*
|
||||
@@ -30,15 +30,17 @@ class WorkingHoursViewController extends AbstractController
|
||||
try {
|
||||
return $this->printResponse($response, $repository->findAll(), StatusCodeInterface::STATUS_OK);
|
||||
} catch (Exception $exception) {
|
||||
throw new HttpInternalServerErrorException($request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception);
|
||||
throw new HttpInternalServerErrorException(
|
||||
$request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param mixed[] $args
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param array<string, mixed> $args
|
||||
*
|
||||
* @return Response
|
||||
*
|
||||
@@ -51,15 +53,17 @@ class WorkingHoursViewController extends AbstractController
|
||||
try {
|
||||
return $this->printResponse($response, $repository->findAll(), StatusCodeInterface::STATUS_OK);
|
||||
} catch (Exception $exception) {
|
||||
throw new HttpInternalServerErrorException($request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception);
|
||||
throw new HttpInternalServerErrorException(
|
||||
$request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param mixed[] $args
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param array<string, mixed> $args
|
||||
*
|
||||
* @return Response
|
||||
*
|
||||
@@ -72,8 +76,10 @@ class WorkingHoursViewController extends AbstractController
|
||||
try {
|
||||
return $this->printResponse($response, $repository->findAll(), StatusCodeInterface::STATUS_OK);
|
||||
} catch (Exception $exception) {
|
||||
throw new HttpInternalServerErrorException($request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception);
|
||||
throw new HttpInternalServerErrorException(
|
||||
$request,
|
||||
'Der Wert für das Datum oder die Zeit ist falsch in der Datenbank', $exception
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user