123456789101112131415161718192021222324252627282930313233343536 |
- class ChatLeaveJob < ApplicationJob
- def perform(chat_session_id, client_id, session)
-
- chat_session = Chat::Session.find_by(id: chat_session_id)
- return if !chat_session
- return if chat_session.recipients_active?
- chat_session.state = 'closed'
- chat_session.save
- realname = 'Anonymous'
-
- if session && session['id'] && chat_session.user_id
- agent_user = chat_session.agent_user
- if agent_user[:name]
- realname = agent_user[:name]
- end
- end
-
- message = {
- event: 'chat_session_left',
- data: {
- realname: realname,
- session_id: chat_session.session_id,
- },
- }
- chat_session.send_to_recipients(message, client_id)
- Chat.broadcast_agent_state_update([chat_session.chat_id])
- end
- end
|