public function actionGetOptimalPrice($from, $to, $dateStart, $dateEnd, $forceUpdate = true) { try { $dateStart = Event::getFlightFromDate($dateStart); $dateEnd = Event::getFlightToDate($dateEnd); $fromTo = FlightSearcher::getOptimalPrice($from, $to, $dateStart, false, $forceUpdate); $toFrom = FlightSearcher::getOptimalPrice($to, $from, $dateEnd, false, $forceUpdate); $fromBack = FlightSearcher::getOptimalPrice($from, $to, $dateStart, $dateEnd, $forceUpdate); $response = array('priceTo' => (int) $fromTo, 'priceBack' => (int) $toFrom, 'priceToBack' => (int) $fromBack); $this->send($response); } catch (Exception $e) { $this->sendError(500, $e->getMessage()); } }
private function getPriceForCity($cityCode, $forceUpdate) { try { $from = City::getCityByCode($cityCode)->id; $to = $this->cityId; $dateStart = self::getFlightFromDate($this->startDate); $priceTo = FlightSearcher::getOptimalPrice($from, $to, $dateStart, false, $forceUpdate); $dateEnd = self::getFlightToDate($this->endDate); $priceBack = FlightSearcher::getOptimalPrice($to, $from, $dateEnd, false, $forceUpdate); $priceToBack = FlightSearcher::getOptimalPrice($from, $to, $dateStart, $dateEnd, $forceUpdate); return min($priceTo + $priceBack, $priceToBack); } catch (Exception $e) { return 'N/A'; } }