PATH:
home
/
lab2454c
/
omvstudio.com
/
app
/
Http
/
Controllers
/
Front
<?php namespace App\Http\Controllers\Front; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Pusher\Pusher; use App\Models\Message; use App\Models\User; use App\Models\Payment; class ChatController extends Controller { public function __construct() { $this->middleware('auth'); } public function index() { /*if (auth()->user()->subscription('main')) { return redirect()->route('home'); } if (auth()->user()->is_one_time == 1) { return redirect()->route('home'); }*/ //dd('hi'); // select all users except logged in user // $users = User::where('id', '!=', Auth::id())->get(); $verified_purches = Payment::where('user_id',auth()->id() )->first(); if(empty($verified_purches) && !auth()->user()->subscription('main')){ return redirect()->route('home'); } else{ // count how many message are unread from the selected user $users = DB::select("select users.id, users.first_name, users.email,users.profile_picture, count(is_read) as unread from users LEFT JOIN messages ON users.id = messages.from and is_read = 0 and messages.to = " . Auth::id() . " where users.id != " . Auth::id() . " group by users.id, users.first_name, users.profile_picture, users.email order by users.first_name asc"); return view('front.chat.chat', ['users' => $users]); } } public function getMessage($user_id) { $my_id = Auth::id(); // Make read all unread message Message::where(['from' => $user_id, 'to' => $my_id])->update(['is_read' => 1]); // Get all message from selected user $messages = Message::where(function ($query) use ($user_id, $my_id) { $query->where('from', $user_id)->where('to', $my_id); })->oRwhere(function ($query) use ($user_id, $my_id) { $query->where('from', $my_id)->where('to', $user_id); })->get(); // $messages->fresh(); return view('front.chat.message.index', ['messages' => $messages]); } public function sendMessage(Request $request) { //dd($request); $from = Auth::id(); $to = $request->receiver_id; $message = $request->message; $data = new Message(); $data->from = $from; $data->to = $to; $data->message = $message; $data->is_read = 0; // message will be unread when sending message $data->save(); // pusher $options = array( 'cluster' => 'ap2', 'useTLS' => true ); $pusher = new Pusher( env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'), $options ); $data = ['from' => $from, 'to' => $to]; // sending from and to user id when pressed enter $pusher->trigger('app-channel', 'app-event', $data); } }
[-] ProfileController.php
[edit]
[+]
..
[-] ChatController.php
[edit]
[-] SubscribeController.php
[edit]
[-] WatchListController.php
[edit]
[-] ContactFromController.php
[edit]
[-] SiteController.php
[edit]
[-] DashboardController.php
[edit]
[-] HomeController.php
[edit]