Example #1
0
 /**
  * data field contains a json object
  */
 public function store(Request $request)
 {
     $data = $request->json();
     // error_log(print_r($data->get('origins'), true));
     // error_log('debug');
     // error_log(print_r($data, true));
     // error_log('here');
     $ride = new Ride();
     $ride->initiator = Auth::user()->id;
     $ride->save();
     $rideUser = new RideUser();
     $rideUser->ride_id = $ride->id;
     $rideUser->user_id = Auth::user()->id;
     $rideUser->save();
     $route = new Route();
     $route->ride_id = $ride->id;
     $directions = !empty($data->get('google_directions')) ? json_encode($data->get('google_directions')) : '';
     $route->direction = $directions;
     $route->user_id = Auth::user()->id;
     $route->state = 'accepted';
     $route->note = !empty($data->get('share_details')) && isset($data->get('share_details')['notes']) ? $data->get('share_details')['notes'] : '';
     $route->endTime = !empty($data->get('share_details')) && isset($data->get('share_details')['arrival_time']) ? $data->get('share_details')['arrival_time'] : '';
     $route->save();
     $ride->head = $route->id;
     $ride->save();
     foreach ($data->get('origins') as $point) {
         $addr = isset($point['formatted_address']) ? $point['formatted_address'] : '';
         RoutePoint::create(['route_id' => $route->id, 'placeId' => $point['google_place_id'], 'address' => $addr, 'location' => $point['longitude'] . ',' . $point['latitude'], 'name' => $point['name'], 'type' => 'start']);
     }
     foreach ($data->get('destinations') as $point) {
         $addr = isset($point['formatted_address']) ? $point['formatted_address'] : '';
         RoutePoint::create(['route_id' => $route->id, 'placeId' => $point['google_place_id'], 'address' => $addr, 'location' => $point['longitude'] . ',' . $point['latitude'], 'name' => $point['name'], 'type' => 'end']);
     }
     return Response::json(['status' => 'success', 'data' => DbUtil::serializeRide($ride)]);
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $routePoint = RoutePoint::find($id);
     $route = $routePoint->route;
     if ($route->user_id === Auth::user()->id) {
         $routePoint->delete();
         return Response::json(['status' => 'success']);
     } else {
         return Response::json(['status' => 'failure', 'message' => 'record not found']);
     }
 }
Example #3
0
 public function accept(Request $request, $id)
 {
     $requestRoute = Route::find($id);
     $dirData = $request->json()->get('google_directions');
     if ($requestRoute) {
         $ride = $requestRoute->ride;
         $route = $ride->headRoute;
         if ($requestRoute && $route->user_id === Auth::user()->id) {
             $points = RoutePoint::where('route_id', $requestRoute->id)->get();
             foreach ($points as $point) {
                 RoutePoint::create(['route_id' => $route->id, 'type' => $point->type, 'placeId' => $point->placeId, 'location' => $point->location, 'name' => $point->name, 'address' => $point->address]);
             }
             if (!RideUser::where('ride_id', $ride->id)->where('user_id', $requestRoute->user_id)->first()) {
                 RideUser::create(['ride_id' => $ride->id, 'user_id' => $requestRoute->user_id]);
             }
             if (!empty($dirData)) {
                 $route->direction = json_encode($dirData);
                 $route->save();
             }
             $requestRoute->state = 'accepted';
             $requestRoute->save();
             return Response::json(['status' => 'success', 'data' => DbUtil::serializeRoute($route)]);
         }
     }
     return Response::json(['status' => 'failure', 'message' => 'record not found']);
 }