public function postSendMessage(Request $request, $property_id = NULL)
 {
     $rules = ['message' => 'required'];
     $this->validate($request, $rules);
     $property = Property::find($property_id);
     $property->load('agentList');
     $user = Auth::user();
     if ($property->agentList) {
         $agent = $property->agentList;
     } else {
         $agent = ProjectHelper::getDefaultAgent();
     }
     $conversation = $user->getPropertyConversation($property);
     if ($conversation) {
         $agent = $conversation->recipient;
     } else {
         $conversation = $user->createPropertyConversation($property, $agent);
     }
     $message = new Message(['message' => $request->input('message')]);
     $message->sender()->associate($user);
     if ($agent) {
         $message->recipient()->associate($agent);
     }
     $message->referenced()->associate($property);
     $message->parentMessage()->associate($conversation);
     $message->save();
     if ($request->ajax()) {
         $return = ['message' => ['id' => $message->id, 'text' => $message->message]];
         return response()->json($return);
     }
     return redirect()->back()->with('messages', [trans('property.inbox.sent_message')]);
 }
 public function getViewExternal(Request $request, $for, $location, $property)
 {
     $propertyListingCode = last(explode('-', $property));
     if (strpos($propertyListingCode, 'go') === false) {
         $propertyObj = Property::find($propertyListingCode);
     } else {
         $propertyObj = Property::where('listing_code', $propertyListingCode)->first();
     }
     return $this->getView($request, $propertyObj, true);
 }