From 1d4ef4e9a43401b64da444787a423594594ab9e5 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Wed, 28 Nov 2018 20:53:04 +0100 Subject: [PATCH] Ensured pagination params in visits list are properly parsed to integer --- data/infra/swoole.Dockerfile | 5 ++++- module/Core/src/Model/VisitsParams.php | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/data/infra/swoole.Dockerfile b/data/infra/swoole.Dockerfile index 07082220..40293eaa 100644 --- a/data/infra/swoole.Dockerfile +++ b/data/infra/swoole.Dockerfile @@ -92,4 +92,7 @@ WORKDIR /home/shlink # Expose swoole port EXPOSE 8080 -CMD /usr/local/bin/composer update && ./vendor/bin/zend-expressive-swoole start +CMD /usr/local/bin/composer update && \ + # When restarting the container, swoole might think it is already in execution + # This forces the app to be started every second until the exit code is 0 + until php ./vendor/bin/zend-expressive-swoole start; do sleep 1 ; done diff --git a/module/Core/src/Model/VisitsParams.php b/module/Core/src/Model/VisitsParams.php index fe6f1a30..e583fb73 100644 --- a/module/Core/src/Model/VisitsParams.php +++ b/module/Core/src/Model/VisitsParams.php @@ -27,7 +27,11 @@ final class VisitsParams $startDate = self::getDateQueryParam($query, 'startDate'); $endDate = self::getDateQueryParam($query, 'endDate'); - return new self(new DateRange($startDate, $endDate), $query['page'] ?? 1, $query['itemsPerPage'] ?? null); + return new self( + new DateRange($startDate, $endDate), + (int) ($query['page'] ?? 1), + isset($query['itemsPerPage']) ? (int) $query['itemsPerPage'] : null + ); } private static function getDateQueryParam(array $query, string $key): ?Chronos