Пример #1
0
 /**
  * @return mixed
  */
 public function pubpriv()
 {
     /**
      * Verify CSRF token.
      */
     if ($_POST['_token'] !== Session::token()) {
         return Response::json(array('error' => true));
     }
     /**
      * Session validation
      */
     $session = Session::get('uber_profile');
     if (!isset($session) || $session['utid'] !== $_POST['utid']) {
         return Response::json(array('error' => true));
     }
     /**
      * Find Uber row and change public/private status.
      */
     $uber = Uber::where('utid', $_POST['utid'])->first();
     $status = $_POST['status'] == 1 ? false : true;
     $uber->public = $status;
     $uber->save();
     /**
      * Respond with json success data.
      */
     return Response::json(array('success' => true, 'dump' => $uber->public));
 }
Пример #2
0
 /**
  * Execute the command.
  *
  * @return void
  */
 public function handle()
 {
     $user_id = Auth::user()->id;
     $ubers = User::find($user_id)->ubers;
     /**
      * If they don't have any Uber accounts, let's go home.
      */
     if (!$ubers->toArray()) {
         $this->go_home();
     }
     /**
      * If the user ID is returned (deauth successful),
      * delete the object from DB.
      */
     $results = Uber::where('access_token', $this->request->input('delete_uber'))->get();
     $uber_object = $results[0];
     $uber_object->delete();
     $params = array('uber' => 'deleted');
     /**
      *  Redirect as needed.
      */
     $queryString = http_build_query($params);
     header("Location: " . action('PagesController@home', $queryString));
     die;
 }
Пример #3
0
 /**
  * @return mixed
  */
 public function uber()
 {
     return Uber::where('id', $this->utdb_id);
 }
 public function home()
 {
     /**
      * Add in a check for the uber_profile session.
      */
     $session = Session::get('uber_profile');
     $utid = isset($_GET['utid']) ? $_GET['utid'] : '';
     if (!$utid && $session) {
         $utid = $session['utid'];
     }
     $uber = Uber::where('utid', $utid)->get()->first();
     if ($uber) {
         try {
             $uber->uber()->getProfile();
         } catch (Exception $e) {
             $client = new Client();
             $response = $client->post('https://login.uber.com/oauth/token', ['body' => ['client_id' => env('UBER_CLIENT_ID'), 'client_secret' => env('UBER_CLIENT_SECRET'), 'redirect_uri' => env('UBER_REDIRECT_URI'), 'refresh_token' => $uber->refresh_token, 'grant_type' => 'refresh_token']])->json();
             if (isset($response['access_token'])) {
                 $uber->access_token = $response['access_token'];
                 $uber->refresh_token = $response['refresh_token'];
                 $uber->save();
             }
         }
     }
     if ($uber && $uber->get_user_total_rides() > 0) {
         $total_rides = $uber->get_user_total_rides();
         if ($total_rides > 10000) {
             $trips_message = 'Uber God. You win.';
         } elseif ($total_rides > 5000) {
             $trips_message = 'Almost impossible!';
         } elseif ($total_rides > 2000) {
             $trips_message = 'Kudos to you. Bravo.';
         } elseif ($total_rides > 1000) {
             $trips_message = 'Wow. Holy wow.';
         } elseif ($total_rides > 500) {
             $trips_message = 'That\'s a fine effort!';
         } elseif ($total_rides > 200) {
             $trips_message = 'Okay - Nice!';
         } elseif ($total_rides > 100) {
             $trips_message = 'That\'s pretty good ' . $uber->get_first_name() . '!';
         } elseif ($total_rides > 50) {
             $trips_message = 'Going to the top!';
         } elseif ($total_rides > 10) {
             $trips_message = 'A beginner, but trying...';
         } else {
             $trips_message = 'Come on ' . $uber->get_first_name() . '...';
         }
         /**
          * Prepare data for this view, including all Uber stats.
          */
         $data = ['uber_client_id' => env('UBER_CLIENT_ID'), 'name' => $uber->get_first_name(), 'full_name' => $uber->get_full_name(), 'photo' => $uber->get_user_logo(), 'utid' => $utid, 'status' => $uber->public, 'trips_taken_count' => $total_rides, 'trips_message' => $trips_message, 'miles_driven_count' => number_format($uber->get_user_total_distance(), 2), 'miles_driven_average' => number_format($uber->get_user_total_distance_average(), 2), 'total_time_count' => display_seconds_pretty($uber->get_user_total_time()), 'total_time_average' => display_seconds_pretty($uber->get_user_total_time_average()), 'wait_time_count' => display_seconds_pretty($uber->get_user_wait_time()), 'wait_time_average' => display_seconds_pretty($uber->get_user_wait_time_average()), 'products' => $uber->get_product_usage()];
         /**
          * Check if the current session UTID matches the requested one.
          * If so, the current user is the owner of the data.
          */
         if (isset($session) && $session['utid'] == $utid) {
             $data['owner'] = true;
         } else {
             $data['owner'] = false;
         }
         return view('pages.dashboard', $data);
     } else {
         $data = ['uber_client_id' => env('UBER_CLIENT_ID'), 'uber_redirect_uri' => env('UBER_REDIRECT_URI')];
         if (isset($_GET['utid'])) {
             $data['message'] = 'This profile does not exist, is private or has no rides.';
         }
         return view('pages.auth', $data);
     }
 }