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'); }