class Restcomm::TaskRouter::Capability
Constants
- OPTIONAL
- REQUIRED
- TASK_ROUTER_BASE_URL
- TASK_ROUTER_VERSION
- TASK_ROUTER_WEBSOCKET_BASE_URL
Public Class Methods
new(account_sid, auth_token, workspace_sid, worker_sid)
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 12 def initialize(account_sid, auth_token, workspace_sid, worker_sid) 13 @account_sid = account_sid 14 @auth_token = auth_token 15 @workspace_sid = workspace_sid 16 @worker_sid = worker_sid 17 @policies = [] 18 allow_websocket_requests 19 allow_activity_list_fetch 20 end
Public Instance Methods
add_policy(url, method, query_filters = nil, post_filters = nil, allowed = true)
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 43 def add_policy(url, method, query_filters = nil, post_filters = nil, allowed = true) 44 policy = { 45 url: url, 46 method: method, 47 query_filter: query_filters || {}, 48 post_filter: post_filters || {}, 49 allow: allowed 50 } 51 52 @policies.push(policy) 53 end
allow_task_reservation_updates()
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 38 def allow_task_reservation_updates 39 task_url = "#{workspace_url}/Tasks/**" 40 add_policy(task_url, "POST", nil, {ReservationStatus: REQUIRED}) 41 end
allow_worker_activity_updates()
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 30 def allow_worker_activity_updates 31 add_policy(worker_url, "POST", nil, {ActivitySid: REQUIRED}) 32 end
allow_worker_fetch_attributes()
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 34 def allow_worker_fetch_attributes 35 add_policy(worker_url, "GET") 36 end
generate_token(ttl = 3600)
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 55 def generate_token(ttl = 3600) 56 payload = { 57 iss: @account_sid, 58 exp: (Time.now.to_i + ttl), 59 version: @version, 60 friendly_name: @worker_sid, 61 policies: @policies, 62 account_sid: @account_sid, 63 worker_sid: @worker_sid, 64 channel: @worker_sid, 65 workspace_sid: @workspace_sid 66 } 67 68 JWT.encode payload, @auth_token 69 end
worker_url()
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 26 def worker_url 27 "#{workspace_url}/Workers/#{@worker_sid}" 28 end
workspace_url()
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 22 def workspace_url 23 "#{TASK_ROUTER_BASE_URL}/#{TASK_ROUTER_VERSION}/Workspaces/#{@workspace_sid}" 24 end
Protected Instance Methods
allow_activity_list_fetch()
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 80 def allow_activity_list_fetch 81 url = "#{workspace_url}/Activities" 82 add_policy(url, 'GET') 83 end
allow_websocket_requests()
click to toggle source
# File lib/restcomm-ruby/task_router/capability.rb 73 def allow_websocket_requests 74 worker_url = "#{TASK_ROUTER_WEBSOCKET_BASE_URL}/#{@account_sid}/#{@worker_sid}" 75 ['GET', 'POST'].each do |meth| 76 add_policy(worker_url, meth) 77 end 78 end