public function show(Request $request, $messageGroupID)
 {
     if ($request->wantsJson()) {
         $messageGroup = MessageGroup::findOrFail($messageGroupID);
         $messages = $messageGroup->messages()->with('sender.employee')->get();
         return $messages;
     }
 }
 public function destroy(Request $request, $id)
 {
     $messageGroup = MessageGroup::findOrFail($id);
     if ($messageGroup->isGroupOwner()) {
         $messageGroup->delete();
         return response('Message group deleted!', 200);
     }
     return response('Cannot delete message!', 200);
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     if ($this->validator($request->all())->fails()) {
         return redirect()->back();
     }
     $recipients = $request->recipient;
     // push owner to recipients array
     array_push($recipients, (string) auth()->user()->id);
     // search for messageGroup with same recipients
     $messageGroup = $this->searchMembersInMessageGroups($recipients);
     // create messageGroup if not found in searching members
     if (!$messageGroup) {
         $messageGroup = MessageGroup::create(['owner_id' => auth()->user()->id]);
     }
     // sync message group members
     $messageGroup->users()->sync($recipients);
     // store the new message
     $message = $messageGroup->messages()->create(['sender_id' => auth()->user()->id, 'message' => $request->message]);
     // sync message recipients
     $message->recipients()->sync($recipients);
     flash()->success('Message sent to recipient!');
     return redirect()->back();
 }