/** * @param ResourceEvent $e * @return \CargoBackend\API\Booking\Dto\RouteCandidateDto[] */ public function onFetchAll(ResourceEvent $e) { $trackingId = $e->getRouteMatch()->getParam('tracking_id'); return $this->bookingService->requestPossibleRoutesForCargo($trackingId); }
/** * @param ResourceEvent $e * @return \CargoBackend\API\Booking\Dto\CargoRoutingDto * @throws \PhlyRestfully\Exception\UpdateException */ public function onUpdate(ResourceEvent $e) { $trackingId = $e->getRouteMatch()->getParam('tracking_id'); $data = $e->getParam('data'); if (!isset($data->legs)) { throw new UpdateException("Legs missing in CargoRouting payload", 400); } $routeCandidate = new RouteCandidateDto(); $routeCandidate->setLegs($this->toLegDtosFromData($data->legs)); $this->bookingService->assignCargoToRoute($trackingId, $routeCandidate); return $this->bookingService->loadCargoForRouting($trackingId); }
/** * @depends testRouteMatchIsMutable */ public function testRouteMatchIsNullable(ResourceEvent $event) { $event->setRouteMatch(null); $this->assertNull($event->getRouteMatch()); }