Broadcast agent state update after closing or adding a chat session.
This commit is contained in:
parent
e2d7821e1f
commit
87712a5b34
3 changed files with 27 additions and 2 deletions
|
@ -23,4 +23,16 @@ class Sessions::Event::ChatBase
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def broadcast_agent_state_update
|
||||||
|
|
||||||
|
# send broadcast to agents
|
||||||
|
Chat::Agent.where(active: true).each {|item|
|
||||||
|
data = {
|
||||||
|
event: 'chat_status_agent',
|
||||||
|
data: Chat.agent_state(item.updated_by_id),
|
||||||
|
}
|
||||||
|
Sessions.send_to(item.updated_by_id, data)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -26,8 +26,14 @@ class Sessions::Event::ChatSessionClose < Sessions::Event::ChatBase
|
||||||
realname = User.find(@session['id']).fullname
|
realname = User.find(@session['id']).fullname
|
||||||
end
|
end
|
||||||
|
|
||||||
# notify about "leaving"
|
# check count of participents
|
||||||
if @session && chat_session.user_id == @session['id']
|
participents_count = 0
|
||||||
|
if chat_session.preferences[:participents]
|
||||||
|
participents_count = chat_session.preferences[:participents].count
|
||||||
|
end
|
||||||
|
|
||||||
|
# notify about "closing"
|
||||||
|
if participents_count < 2 || (@session && chat_session.user_id == @session['id'])
|
||||||
message = {
|
message = {
|
||||||
event: 'chat_session_closed',
|
event: 'chat_session_closed',
|
||||||
data: {
|
data: {
|
||||||
|
@ -39,6 +45,11 @@ class Sessions::Event::ChatSessionClose < Sessions::Event::ChatBase
|
||||||
# close session if host is closing it
|
# close session if host is closing it
|
||||||
chat_session.state = 'closed'
|
chat_session.state = 'closed'
|
||||||
chat_session.save
|
chat_session.save
|
||||||
|
|
||||||
|
# set state update to all agents
|
||||||
|
broadcast_agent_state_update
|
||||||
|
|
||||||
|
# notify about "leaving"
|
||||||
else
|
else
|
||||||
message = {
|
message = {
|
||||||
event: 'chat_session_left',
|
event: 'chat_session_left',
|
||||||
|
|
|
@ -53,6 +53,8 @@ class Sessions::Event::ChatSessionStart < Sessions::Event::ChatBase
|
||||||
local_chat_session.send_to_recipients(data)
|
local_chat_session.send_to_recipients(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
broadcast_agent_state_update
|
||||||
|
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue