/** * Show the form for creating a new resource. * * @return Response */ public function populateRoutes() { $inputs = ['origin' => rawurlencode(Input::get('origin')), 'destination' => rawurlencode(Input::get('destination')), 'pax' => Input::get('pax')]; $airports = []; $user_id = Input::get('user_id'); $contributor = User::find($user_id); $now = Carbon::now(); if ($contributor == null) { return response()->json('user not found.', 404); } $data = Rome2Rio::call($inputs['origin'], $inputs['destination']); if (isset($data->airports)) { foreach ($data->airports as $airport) { $airports[$airport->code] = $airport->pos; } } foreach ($data->routes as $route) { $iterinary = new Iterinary(); $iterinary->origin = $data->places[0]->name; $iterinary->destination = $data->places[1]->name; $iterinary->creator_id = $contributor->id; $iterinary->duration = $route->duration; $iterinary->distance = $route->distance; $iterinary->price = Rome2Rio::getRome2RioPrice($route); $new_route = new Route(); $new_route->name = $route->name; $new_route->distance = $route->distance; $new_route->duration = $route->duration; $new_route->price = Rome2Rio::getRome2RioPrice($route); $new_route->save(); $iterinary->route()->associate($new_route); $iterinary->save(); $contributor->iterinaries()->attach($iterinary->id, ['date_start' => $now]); $i = 1; foreach ($route->segments as $segment) { $new_segment = new Segment(); if ($segment->kind == "flight") { $segment = Rome2Rio::convertToFlightSegment($segment, $data); } $new_segment->mode = !isset($segment->subkind) ? $segment->kind : $segment->subkind; $new_segment->sequence = $i; $new_segment->origin_name = !isset($segment->sName) ? "" : $segment->sName; $new_segment->destination_name = !isset($segment->tName) ? "" : $segment->tName; $new_segment->origin_pos = $segment->sPos; $new_segment->destination_pos = $segment->tPos; $new_segment->price = Rome2Rio::getRome2RioPrice($segment); $new_segment->path = $segment->kind == "flight" ? Rome2Rio::getFlightPath($airports[$segment->sCode], $airports[$segment->tCode]) : $segment->path; $new_segment->distance = $segment->distance; $new_segment->duration = $segment->duration; $new_route->segments()->save($new_segment); $activity = new Activity(); $activity->iterinary_id = $iterinary->id; $activity->day = 1; $activity->start_time = Carbon::now()->toTimeString(); $activity->end_time = Carbon::now()->addMinute($segment->duration)->toTimeString(); $new_segment->activity()->save($activity); $i++; } unset($i); // unset index for segments sequence } //dd($data); }
/** * Remove the specified resource from storage. * * @param $request * @return Response */ public function store(Request $request) { $ite = new Iterinary(); $ite->destination = $request['destination']; $ite->origin = $request['origin']; $ite->route_id = $request['route_id']; $ite->save(); }