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