From 3ad13472d89143b02ab5338dff19f091d92b4849 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Wed, 31 Jan 2018 10:25:31 +0100 Subject: [PATCH] Improved error handling. --- .../javascripts/app/controllers/chat.coffee | 11 ++++++++- lib/sessions/event/chat_status_customer.rb | 24 ++++++++++--------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/assets/javascripts/app/controllers/chat.coffee b/app/assets/javascripts/app/controllers/chat.coffee index 6d2481f31..7414c4c12 100644 --- a/app/assets/javascripts/app/controllers/chat.coffee +++ b/app/assets/javascripts/app/controllers/chat.coffee @@ -775,10 +775,19 @@ class ChatWindow extends App.Controller # cleanup params fqdn = App.Config.get('fqdn') http_type = App.Config.get('http_type') + url = '' + session = @session + + # in case we do not have a model, create one + if session && !session.uiUrl + session = new App.ChatSession(session) + if session && session.uiUrl + url = session.uiUrl() + clean_params = id: id prefilledParams: - body: "#{http_type}://#{fqdn}#{@session.uiUrl()}" + body: "#{http_type}://#{fqdn}/#{url}" title: 'Chat' App.TaskManager.execute( diff --git a/lib/sessions/event/chat_status_customer.rb b/lib/sessions/event/chat_status_customer.rb index c7843cd54..dbb5e8431 100644 --- a/lib/sessions/event/chat_status_customer.rb +++ b/lib/sessions/event/chat_status_customer.rb @@ -13,18 +13,20 @@ class Sessions::Event::ChatStatusCustomer < Sessions::Event::ChatBase # update recipients of existing sessions chat_session = Chat::Session.find_by(session_id: session_id) - chat_session.add_recipient(@client_id, true) + if chat_session + chat_session.add_recipient(@client_id, true) - # sent url update to agent - if @payload['data']['url'] - message = { - event: 'chat_session_notice', - data: { - session_id: chat_session.session_id, - message: @payload['data']['url'], - }, - } - chat_session.send_to_recipients(message, @client_id) + # sent url update to agent + if @payload['data']['url'] + message = { + event: 'chat_session_notice', + data: { + session_id: chat_session.session_id, + message: @payload['data']['url'], + }, + } + chat_session.send_to_recipients(message, @client_id) + end end end