From 4fa901dc1b4ce2d31383b983c91a77b00244378d Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sun, 12 Jan 2020 19:55:24 +0100 Subject: [PATCH] Fix bug with showing only last selected stop. --- src/Controller/Api/v1/DeparturesController.php | 6 ++++-- src/Model/Departure.php | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Controller/Api/v1/DeparturesController.php b/src/Controller/Api/v1/DeparturesController.php index 2ad55a3..3141006 100644 --- a/src/Controller/Api/v1/DeparturesController.php +++ b/src/Controller/Api/v1/DeparturesController.php @@ -11,6 +11,8 @@ use Nelmio\ApiDocBundle\Annotation\Model; use Swagger\Annotations as SWG; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; +use function Kadet\Functional\ref; +use function Kadet\Functional\Transforms\property; /** * Class DeparturesController @@ -63,8 +65,8 @@ class DeparturesController extends Controller { $stops = $stops ->getManyById($request->query->get('stop')) - ->flatMap([ $departures, 'getForStop' ]) - ; + ->flatMap(ref([ $departures, 'getForStop' ])) + ->sortBy(property('departure')); return $this->json($stops->values()->slice(0, (int)$request->query->get('limit', 8))); } diff --git a/src/Model/Departure.php b/src/Model/Departure.php index df1e34d..c30b346 100644 --- a/src/Model/Departure.php +++ b/src/Model/Departure.php @@ -108,6 +108,11 @@ class Departure implements Fillable $this->scheduled = $scheduled; } + public function getDeparture(): Carbon + { + return $this->estimated ?? $this->scheduled; + } + public function getStop(): Stop { return $this->stop; @@ -129,4 +134,4 @@ class Departure implements Fillable ? $this->getScheduled()->diffInSeconds($this->getEstimated(), false) : null; } -} \ No newline at end of file +}