Class: TwilioBase::TaskRouter::TaskQueue

Inherits:
Object
  • Object
show all
Defined in:
app/services/twilio_base/task_router/task_queue.rb

Class Method Summary collapse

Class Method Details

.assignment_activity_sid(workspace) ⇒ Object



30
31
32
# File 'app/services/twilio_base/task_router/task_queue.rb', line 30

def assignment_activity_sid(workspace)
  workspace.activities.list(friendly_name: 'Busy').first.sid
end

.create(workspace:, friendly_name:, target_workers:) ⇒ Object



21
22
23
24
25
26
27
28
# File 'app/services/twilio_base/task_router/task_queue.rb', line 21

def create(workspace:, friendly_name:, target_workers:)
  workspace.task_queues.create(
    assignment_activity_sid: assignment_activity_sid(workspace),
    friendly_name: friendly_name,
    reservation_activity_sid: reservation_activity_sid(workspace),
    target_workers: target_workers
  )
end

.find_by(workspace:, friendly_name:) ⇒ Object



17
18
19
# File 'app/services/twilio_base/task_router/task_queue.rb', line 17

def find_by(workspace:, friendly_name:)
  workspace.task_queues.list(friendly_name: friendly_name).first
end

.find_or_create_by(workspace:, friendly_name:, target_workers: nil) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'app/services/twilio_base/task_router/task_queue.rb', line 7

def find_or_create_by(workspace:, friendly_name:, target_workers: nil)
  attributes = {
    workspace: workspace,
    friendly_name: friendly_name,
    target_workers: target_workers
  }.to_a

  find_by(attributes[0..1].to_h) || create(attributes.to_h)
end

.reservation_activity_sid(workspace) ⇒ Object



34
35
36
# File 'app/services/twilio_base/task_router/task_queue.rb', line 34

def reservation_activity_sid(workspace)
  workspace.activities.list(friendly_name: 'Reserved').first.sid
end