Example #1
0
 public function createConversation($sender_id, $data)
 {
     try {
         $receiver_id = $data['receiver_id'];
         $content = $data['message'];
         $conversation = new Conversation();
         $conversation->sender_id = $sender_id;
         $conversation->receiver_id = $receiver_id;
         $conversation->parent_conversation_id = $data['parent_conversation_id'] > 0 ? $data['parent_conversation_id'] : 0;
         $conversation->message = $content;
         if ($conversation->save()) {
             $sender = $this->user_service->getUserById($sender_id);
             $receiver = $this->user_service->getUserById($receiver_id);
             $send_from = $this->user_service->userHasCompany($sender_id) ? $sender['company']['name'] : $sender['first_name'] . ' ' . $sender['last_name'];
             $send_to = $this->user_service->userHasCompany($receiver_id) ? $receiver['company']['name'] : $receiver['first_name'] . ' ' . $receiver['last_name'];
             $email = $receiver['email'];
             $data = ['name' => $send_to, 'from' => $send_from, 'content' => $content, 'account_type' => $this->user_service->userHasCompany($sender_id) ? 'user' : 'company'];
             Mail::queue('worklemon.email.messages', $data, function ($message) use($email, $send_from, $send_to) {
                 $message->to($email, $send_to);
                 $message->subject('Message from ' . $send_from);
                 $message->priority(1);
             });
             return $conversation->toArray();
         }
         return [];
     } catch (Exception $e) {
         return Response::json(['error' => $e->getMessage()]);
     }
 }