trabajo-afectivo/lib/sessions/event/chat_session_init.rb

40 lines
759 B
Ruby
Raw Normal View History

class Sessions::Event::ChatSessionInit < Sessions::Event::ChatBase
2015-11-10 14:01:04 +00:00
def run
2015-11-10 14:01:04 +00:00
chat_id = 1
chat = Chat.find_by(id: chat_id)
if !chat
return {
event: 'chat_session_init',
data: {
state: 'no_such_chat',
},
}
end
# create chat session
chat_session = Chat::Session.create(
chat_id: chat_id,
name: '',
state: 'waiting',
preferences: {
participants: [@client_id],
2015-11-10 14:01:04 +00:00
},
)
# send broadcast to agents
2015-11-13 14:15:44 +00:00
broadcast_agent_state_update
2015-11-10 14:01:04 +00:00
# return new session
{
event: 'chat_session_queue',
2015-11-10 14:01:04 +00:00
data: {
state: 'queue',
position: Chat.waiting_chat_count,
session_id: chat_session.session_id,
},
}
end
end