/**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     $bookings = Bookings::where('bookings.id', '=', $id)->join('users', 'users.id', '=', 'bookings.host_id')->join('listings', 'listings.id', '=', 'bookings.listing_id')->select('bookings.id', 'bookings.checkin', 'bookings.checkout', 'bookings.status', 'bookings.host_id', 'listings.title', 'listings.address', 'listings.city', 'users.name', 'users.avatar', 'bookings.total')->first();
     $messages = Messages::where('messages.bookings_id', '=', $bookings->id)->join('users', 'users.id', '=', 'messages.user_id')->select('users.avatar', 'users.name', 'users.id', 'messages.content', 'messages.created_at')->orderBy('created_at', 'DESC')->get();
     $bookings['messages'] = $messages;
     $bookings['auth'] = Auth::user()->id;
     return response()->json($bookings);
 }
Beispiel #2
0
 public static function checkUnreadMessages(Request $request)
 {
     $msgs = Messages::where('user_id_received', $request->user()->id)->where('read', 0)->get();
     $count = 0;
     $people = [];
     foreach ($msgs as $msg) {
         if (!in_array($msg->user_id_sent, $people)) {
             $count++;
             $people[] = $msg->user_id_sent;
         }
     }
     return $count;
 }
 /**
  * Returns a view with pre-assigned information.
  *
  * @param $view
  * @param array $opts
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public function view($view, $opts = array())
 {
     $user = User::findOrFail(Auth::user()['id']);
     if ($user->avatar == "") {
         $user->avatar = "http://gravatar.com/avatar/" . md5($user->email);
     }
     // Get unread messages
     $messages = \App\Messages::where('unread', true)->where('recipient', $user->id)->get();
     $unread = count($messages);
     $data = ['user' => $user];
     $data['unread'] = $unread;
     foreach ($opts as $key => $value) {
         $data[$key] = $value;
     }
     return view($view, $data);
 }
 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));
 }
 public function deleteMessage($id)
 {
     $user_id = Messages::where('id', $id)->first()->pluck('user_id');
     if (Auth::user()->id != $user_id) {
         abort(401, "Unauthorized");
     }
     Messages::destroy($id);
     abort(200, "All done");
 }
 public function send(MessageRequest $requests)
 {
     Messages::create($requests->all());
     $messages = Messages::where('email', Auth::user()->email)->where('active', '1')->orderby('id', 'desc')->paginate(10);
     return redirect('/messages/inbox')->with('messages', $messages);
 }
 public function showDialog(Request $request, $dialog)
 {
     $id = $request->user()->id;
     $msgs = Messages::where("dialog_num", $dialog)->orderBy("created_at", "ASC")->with('getSender')->with('getReceiver')->with('getSeance')->get();
     $any_msg = $msgs->first();
     $dialog_with = $any_msg->getReceiver->id == $id ? $any_msg->getSender : $any_msg->getReceiver;
     foreach ($msgs as $msg) {
         if ($msg->getReceiver->id == $id) {
             $msg->read = 1;
             $msg->update();
         }
     }
     return view()->make('user.dialog', array('messages' => $msgs, 'id' => $id, 'dialog_with' => $dialog_with));
 }