Advertisement
Guest User

Untitled

a guest
Mar 15th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.82 KB | None | 0 0
  1. public function sendMessage(Request $request)
  2.     {
  3.         $AMQPUser = 'guest';
  4.         $AMQPPass = 'guest';
  5.         $response = [];
  6.         $statusCode = 200;
  7.         $msgType = "text";
  8.         $messengers = ['telegram', 'skype', 'viber', 'whatsapp', 'imessage'];
  9.         $companyAcceptedMessengers = [];
  10.         $subscriberMessenger = "";
  11.  
  12.         $validation = \Validator::make($request->all(), [
  13.             'message' => 'required',
  14.             'c_token' => 'required',
  15.         ]);
  16.  
  17.         if(!$validation->fails()) {
  18.             $company = Subscription::where('company_token', $request->c_token)->get()->toArray();
  19.  
  20.             foreach ($company[0] as $key => $value) {
  21.                 if(substr($key, 0, 3) == 'has') {
  22.                     if($value) {
  23.                         $companyAcceptedMessengers[] = explode("_", $key)[1];
  24.                     }
  25.                 }
  26.             }
  27.  
  28.             if($company) {
  29.  
  30.                 $subscriber = Subscriber::where('id', $request->uid)->get()->toArray();
  31.  
  32.                 foreach ($subscriber[0] as $key => $value) {
  33.                     if(in_array(
  34.                         explode("_", $key)[0], $companyAcceptedMessengers)
  35.                         && $value) {
  36.                             $subscriberMessenger = explode("_", $key)[0];
  37.                             continue;        
  38.                     }
  39.                 }
  40.  
  41.                 if($subscriberMessenger) {
  42.                     $bot = Bot::where('id', $company[0]['bot_id'])->get();
  43.  
  44.                     $connection = new AMQPStreamConnection('localhost', 5672, $AMQPUser, $AMQPPass);
  45.                     $channel = $connection->channel();
  46.  
  47.                     $channel->queue_declare('msg_telegram', false, false, false, false);
  48.  
  49.                     $msgData = new AMQPMessage(
  50.                         json_encode([
  51.                             "m_userid" => $subscriber[0][$subscriberMessenger.'_id'],
  52.                             "m_chatid" => $bot[0][$subscriberMessenger.'_id'],
  53.                             "m_token"  => $bot[0][$subscriberMessenger.'_token'],
  54.                             "m_message"=> $request->message,
  55.                             "m_type"   => $msgType
  56.                         ])
  57.                     );
  58.  
  59.                     $channel->basic_publish($msgData, '', 'msg_telegram');
  60.  
  61.                     $response = "Отправлено";
  62.                     $channel->close();
  63.                     $connection->close();
  64.                 } else {
  65.                     // subscriber not registered
  66.                 }
  67.             } else {
  68.                 // bad subscription api token
  69.             }  
  70.         } else {
  71.             // fails
  72.         }
  73. /*
  74.         return view('welcome', [
  75.             'response' => response()->json($response, 200, [], JSON_UNESCAPED_UNICODE)
  76.         ]);
  77. */
  78.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement