class Twilio::JWT::TaskRouterCapability

Constants

TASK_ROUTER_VERSION

Public Class Methods

new(account_sid, auth_token, workspace_sid, channel_id, nbf: nil, ttl: 3600, valid_until: nil) click to toggle source
Calls superclass method Twilio::JWT::BaseJWT::new
   # File lib/twilio-ruby/jwt/task_router.rb
 7 def initialize(account_sid, auth_token, workspace_sid, channel_id, nbf: nil, ttl: 3600, valid_until: nil)
 8   super(secret_key: auth_token,
 9         issuer: account_sid,
10         nbf: nbf,
11         ttl: ttl,
12         valid_until: valid_until
13   )
14   @account_sid = account_sid
15   @auth_token = auth_token
16   @workspace_sid = workspace_sid
17   @channel_id = channel_id
18   @policies = []
19 end

Public Instance Methods

add_policy(policy) click to toggle source
   # File lib/twilio-ruby/jwt/task_router.rb
21 def add_policy(policy)
22   @policies.push(policy)
23 end

Protected Instance Methods

_generate_payload() click to toggle source
   # File lib/twilio-ruby/jwt/task_router.rb
27 def _generate_payload
28   Twilio::JWT::TaskRouterCapability::TaskRouterUtils
29     .web_socket_policies(@account_sid, @channel_id)
30     .each { |policy| add_policy(policy) }
31   policies = @policies.map(&:_generate_payload)
32 
33   payload = {
34     account_sid: @account_sid,
35     workspace_sid: @workspace_sid,
36     channel: @channel_id,
37     version: TASK_ROUTER_VERSION,
38     friendly_name: @channel_id,
39     policies: policies
40   }
41 
42   if @channel_id[0..1] == 'WK'
43     payload[:worker_sid] = @channel_id
44   elsif @channel_id[0..1] == 'WQ'
45     payload[:taskqueue_sid] = @channel_id
46   end
47 
48   payload
49 end