ticket_create_screen_job.rb 794 B

1234567891011121314151617181920212223242526272829
  1. class TicketCreateScreenJob < ApplicationJob
  2. include HasActiveJobLock
  3. def perform
  4. Sessions.list.each do |client_id, data|
  5. next if client_id.blank?
  6. user_id = data&.dig(:user, 'id')
  7. next if user_id.blank?
  8. user = User.lookup(id: user_id)
  9. next if !user&.permissions?('ticket.agent')
  10. # get attributes to update
  11. ticket_create_attributes = Ticket::ScreenOptions.attributes_to_change(
  12. current_user: user,
  13. )
  14. # no data exists
  15. next if ticket_create_attributes.blank?
  16. Rails.logger.debug { "push ticket_create for user #{user.id}" }
  17. Sessions.send(client_id, {
  18. event: 'ticket_create_attributes',
  19. data: ticket_create_attributes,
  20. })
  21. end
  22. end
  23. end