<?php namespace App\Http\Controllers\Admin; use App\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use App\Http\Controllers\Controller; use Brian2694\Toastr\Facades\Toastr; use Illuminate\Support\Facades\Auth; use Modules\SystemSetting\Entities\Message; use Modules\CourseSetting\Entities\CourseComment; class CommunicationController extends Controller { public function QuestionAnswer() { $comments = CourseComment::where('instructor_id', Auth::id())->with('course', 'replies', 'user')->paginate(10); return view('backend.communication.question_answer', compact('comments')); } public function PrivateMessage() { if (Auth::user()->role_id == 1) { $users = User::where('id', '!=', Auth::id())->where('role_id', 2)->with('sender')->get(); } else{ $users = User::with('sender')->where('id', '!=', Auth::id())->where(function ($query) { $query->where('role_id', 1)->orWhereHas('enrollStudents'); })->get(); } $singleMessage = Message::where('sender_id', Auth::id())->orderBy('id', 'DESC')->first(); if ($singleMessage) { $messages = Message::whereIn('reciever_id', array(Auth::id(), $singleMessage->reciever_id)) ->whereIn('sender_id', array(Auth::id(), $singleMessage->reciever_id))->get(); } else { $messages = ""; } return view('backend.communication.private_messages', compact('messages', 'users', 'singleMessage')); } public function StorePrivateMessage(Request $request) { if (demoCheck()) { return false; } $rules = [ 'message' => 'required', ]; $this->validate($request, $rules, validationMessage($rules)); try { $message = new Message; $message->sender_id = Auth::id(); $message->reciever_id = $request->reciever_id; $message->message = $request->message; $message->type = Auth::id() == 1 ? 1 : 2; $message->seen = 0; $message->save(); Toastr::success('Message has been send successfully', 'Success'); $messages = Message::whereIn('reciever_id', array(Auth::id(), $request->reciever_id)) ->whereIn('sender_id', array(Auth::id(), $request->reciever_id))->get(); $output = getConversations($messages); return response()->json($output); } catch (\Exception $e) { Log::info($e); return response()->json(['error' => $e]); } } public function getMessage(Request $request) { try { $receiver_id = $request->id; $messages = Message::whereIn('reciever_id', array(Auth::id(), $receiver_id)) ->whereIn('sender_id', array(Auth::id(), $receiver_id))->get(); $output = getConversations($messages); Message::where('seen', '=', 0)->where('sender_id', $receiver_id)->where('reciever_id', Auth::id())->update(['seen' => 1]); $data['messages'] = $output; $receiver = User::find($receiver_id); $data['receiver_name'] = $receiver->name; $data['avatar'] = url('public/' . $receiver->image); return response()->json($data); } catch (\Exception $e) { Log::info($e); return response()->json(['error' => 'error']); } } }