/** * 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); }
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)); }