/** * @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 testQueryParamsAreMutable */ public function testQueryParamsAreNullable(ResourceEvent $event) { $event->setQueryParams(null); $this->assertNull($event->getQueryParams()); }
/** * @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); }
/** * Prepare event parameters * * Merges any event parameters set in the resources with arguments passed * to a resource method, and passes them to the `prepareArgs` method of the * event manager. * * @param array $args * @return ArrayObject */ protected function prepareEvent($name, array $args) { $event = new ResourceEvent($name, $this, $this->prepareEventParams($args)); $event->setQueryParams($this->getQueryParams()); $event->setRouteMatch($this->getRouteMatch()); return $event; }