Example #1
0
 public function claimSession()
 {
     $chat_session_id = $this->app->get('PARAMS.session_id');
     try {
         $chat_session = (new \Support\Models\ChatSessions())->setState('filter.id', $chat_session_id)->getItem();
         if (empty($chat_session->id)) {
             throw new \Exception('Invalid Session');
         }
         $chat_session->session_id_admin = $this->session->id();
         $chat_session->admin_id = new \MongoId((string) $this->getIdentity()->id);
         $chat_session->admin_name = $this->getIdentity()->first_name;
         $chat_session->admin_email = $this->getIdentity()->email;
         $chat_session->status = 'claimed';
         $chat_session->messages[] = (new \Support\Models\ChatMessages(array('sender_type' => 'system', 'sender_name' => 'System Bot', 'timestamp' => time(), 'text' => $this->getIdentity()->first_name . ' has joined this session.')))->cast();
         $chat_session->save();
         \Dsc\System::addMessage('You claimed that session');
     } catch (\Exception $e) {
         \Dsc\System::addMessage('There was an error claiming that session.', 'error');
         \Dsc\System::addMessage($e->getMessage(), 'error');
     }
     try {
         $user = $this->getIdentity();
         \Support\Models\Operators::goOnline($user);
         \Dsc\System::addMessage('You are now online');
     } catch (\Exception $e) {
         \Dsc\System::addMessage('There was an error marking you as online', 'error');
         \Dsc\System::addMessage($e->getMessage(), 'error');
     }
     $this->app->reroute('/admin/support/live-chat');
 }