Exemplo n.º 1
0
 public function fire($job, $outbound_id)
 {
     $outbound = Outbound::findOrFail($outbound_id);
     $nexmo = new NexmoAccount(Cache::get('NEXMO_KEY', getenv('NEXMO_KEY')), Cache::get('NEXMO_SECRET', getenv('NEXMO_SECRET')));
     $response = $nexmo->sendMessage($outbound->from, $outbound->to, $outbound->text, array('status-report-req' => 1, 'client-ref' => $outbound_id));
     $isSent = true;
     if ($response['message-count'] > 0) {
         foreach ($response['messages'] as $message) {
             $outbound_chunk = new OutboundChunk();
             $outbound_chunk->outbound_id = $outbound_id;
             $outbound_chunk->message_id = $message['message-id'];
             $outbound_chunk->status_code = $message['status'];
             $outbound_chunk->price = $message['message-price'];
             $outbound_chunk->save();
             // update balance
             Pusherer::trigger('boom', 'update_balance', $message['remaining-balance']);
             if ($message['status'] > 0) {
                 $isSent = false;
             }
         }
     }
     // update status outbound
     if ($isSent) {
         $outbound->status = 'sent';
         $outbound->save();
     }
     $job->delete();
 }