public function showProfile(Request $request, $id = null)
 {
     $user = User::find($id != null ? $id : $request->user()->id);
     if ($user != null) {
         if ($user->city_id != 0) {
             $city = Cities::find($user->city_id);
         } else {
             $city = null;
         }
         if ($user->birth_date != "0000-00-00") {
             $user->age = Helper::ageCalculator($user->birth_date);
         }
         if ($user->ava != 'noava.jpeg') {
             $img = $user->ava;
             $user->ava = '/upload/' . $img;
         } else {
             $user->ava = '/images/noava.jpeg';
         }
         if ($user->id == $request->user()->id) {
             $user->self = true;
         } else {
             $user->self = false;
         }
         return view()->make('user.show', array('user' => $user, 'city' => $city));
     } else {
         return view()->make('error.access_denied');
     }
 }
 public function getList(Request $request, $id = null)
 {
     if ($id != null) {
         $s = Seances::find($id);
         $c = Cinemas::find($s->cinema_id);
         $city_id = $c->city_id;
     } else {
         $city_id = $request->input('city_id');
     }
     $users = new User();
     if ($request->input('gender')) {
         $users = $users->where("gender", '=', $request->input('gender'));
     }
     if ($request->input('city_id') != 0) {
         $users = $users->where("city_id", '=', $city_id);
     }
     if ($request->input('age_from') != 0) {
         $users = $users->where(DB::raw("TIMESTAMPDIFF(YEAR,birth_date,CURDATE())"), '>=', $request->input('age_from'));
     }
     if ($request->input('age_to') != 0) {
         $users = $users->where(DB::raw("TIMESTAMPDIFF(YEAR,birth_date,CURDATE())"), '<=', $request->input('age_to'));
     }
     $users = $users->where("status", "enable");
     $users = $users->where("id", '<>', $request->user()->id);
     $users = $users->get();
     $cities = Cities::orderBy('city')->get();
     $cityList = [];
     $cityList[0] = 'Любой';
     foreach ($cities as $key => $value) {
         $cityList[$value->id] = $value->city;
     }
     foreach ($users as $key => $user) {
         if ($user->ava != 'noava.jpeg') {
             $img = $user->ava;
             $users[$key]->ava = '/upload/' . $img;
         } else {
             $users[$key]->ava = '/images/noava.jpeg';
         }
         $age = Helper::ageCalculator($user->birth_date);
         $users[$key]->age = $age == null ? " " : $age;
         if ($user->city_id != '0') {
             $users[$key]->city = Cities::find($user->city_id)->city;
         } else {
             $users[$key]->city = " ";
         }
     }
     return view()->make('search.user_filter', array('users' => $users, 'cityList' => $cityList, 'city_id' => $city_id, 'age_from' => $request->input('age_from') ? $request->input('age_from') : 0, 'age_to' => $request->input('age_to') ? $request->input('age_to') : 0, 'gender' => $request->input('gender'), 'id' => $id));
 }
 public function addToCalendar(Request $request, $dialog, $id)
 {
     $client = new Google_Client();
     $client->setScopes(SCOPES);
     $client->setAuthConfigFile(CLIENT_SECRET_PATH);
     //$client->setAccessType('offline');
     $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/google_calendar_callback');
     //  $credentialsPath = $this->expandHomeDirectory(CREDENTIALS_PATH);
     $request->session()->put('dialog', $dialog);
     $request->session()->put('seance', $id);
     // Request authorization from the user.
     if ($request->session()->get('access_token')) {
         $accessToken = $request->session()->get('access_token');
         $client->setAccessToken($accessToken);
         // Refresh the token if it's expired.
         if ($client->isAccessTokenExpired()) {
             $client->refreshToken(Session::find($request->session()->getId()));
         }
     } else {
         // Request authorization from the user.
         $authUrl = $client->createAuthUrl();
         return Response::make('', 302)->header('Location', filter_var($authUrl, FILTER_SANITIZE_URL));
     }
     $d = Messages::where('dialog_num', $dialog)->first();
     $user = User::where('id', $d->user_id_received == $request->user()->id ? $d->user_id_sent : $d->user_id_received)->first();
     $seance = Seances::where('id', $id)->with('getCinema')->with('getMovie')->first();
     $service = new Google_Service_Calendar($client);
     $start_date = new DateTime($seance->start_time);
     $start_date->sub(new DateInterval('PT3H'));
     $end_date = new DateTime($seance->start_time);
     $end_date->add(new DateInterval('PT' . $seance->getMovie->duration . 'M'));
     $end_date->sub(new DateInterval('PT3H'));
     $event = new Google_Service_Calendar_Event(array('summary' => 'Поход в кино', 'location' => Cities::find($seance->getCinema->city_id)->first()->city . ", " . $seance->getCinema->address, 'description' => $seance->getMovie->title, 'start' => array('dateTime' => $start_date->format('Y-m-d\\TH:i:sP'), 'timeZone' => 'Europe/Moscow'), 'end' => array('dateTime' => $end_date->format('Y-m-d\\TH:i:sP'), 'timeZone' => 'Europe/Moscow'), 'recurrence' => array('RRULE:FREQ=DAILY;COUNT=1'), 'attendees' => array(array('email' => $user->email)), 'reminders' => array('useDefault' => FALSE, 'overrides' => array(array('method' => 'email', 'minutes' => 24 * 60), array('method' => 'popup', 'minutes' => 10)))));
     $calendarId = 'primary';
     $event = $service->events->insert($calendarId, $event);
     return Response::make('', 302)->header('Location', filter_var($event->htmlLink, FILTER_SANITIZE_URL));
 }