36 lines
857 B
Ruby
36 lines
857 B
Ruby
|
class Sessions::Event::ChatSessionUpdate < Sessions::Event::ChatBase
|
||
|
|
||
|
def run
|
||
|
return super if super
|
||
|
return if !check_chat_session_exists
|
||
|
return if !permission_check('chat.agent', 'chat')
|
||
|
chat_session = current_chat_session
|
||
|
|
||
|
if @payload['data']['name'] != chat_session.name
|
||
|
chat_session.name = @payload['data']['name']
|
||
|
chat_session.save!
|
||
|
end
|
||
|
|
||
|
if @payload['data']['tags']
|
||
|
new_tags = @payload['data']['tags'].split(',')
|
||
|
|
||
|
new_tags.each(&:strip!)
|
||
|
|
||
|
tags = chat_session.tag_list
|
||
|
new_tags.each do |new_tag|
|
||
|
next if new_tag.blank?
|
||
|
next if tags.include?(new_tag)
|
||
|
chat_session.tag_add(new_tag, current_user_id)
|
||
|
end
|
||
|
|
||
|
tags.each do |tag|
|
||
|
next if new_tags.include?(tag)
|
||
|
chat_session.tag_remove(tag, current_user_id)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
nil
|
||
|
end
|
||
|
|
||
|
end
|