class TicketAssignment

Attributes

assigned_ids[R]
unassigned_ids[R]

Public Class Methods

new(ticket, user_ids) click to toggle source
# File lib/ticket_assignment.rb, line 4
def initialize ticket, user_ids
  @ticket = ticket
  @user_ids = user_ids.split(",")
end

Public Instance Methods

assign!() click to toggle source
# File lib/ticket_assignment.rb, line 9
def assign!
  ids = @user_ids
  existing_ids = @ticket.assignments.map(&:user_id)

  @unassigned_ids = existing_ids - ids
  if @unassigned_ids.any?
    @ticket.assignments.where(user_id: @unassigned_ids).destroy_all 
  end

  @assigned_ids = ids - existing_ids
  @assigned_ids.each do |id|
    @ticket.assignments.create(user_id: id)
  end

  @assigned_ids.any? || @unassigned_ids.any?
end