Skip to content

Commit

Permalink
Update URLs and allow Activities fetch by default
Browse files Browse the repository at this point in the history
  • Loading branch information
skimbrel authored and AlexPayment committed Feb 12, 2015
1 parent 74191c0 commit 319d754
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 12 deletions.
8 changes: 7 additions & 1 deletion lib/twilio-ruby/task_router/capability.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ def initialize(account_sid, auth_token, workspace_sid, worker_sid)
@worker_sid = worker_sid
@policies = []
allow_websocket_requests
allow_worker_activity_list_fetch
end

def workspace_url
"#{TASK_ROUTER_BASE_URL}/#{TASK_ROUTER_VERSION}/Accounts/#{@account_sid}/Workspaces/#{@workspace_sid}"
"#{TASK_ROUTER_BASE_URL}/#{TASK_ROUTER_VERSION}/Workspaces/#{@workspace_sid}"
end

def worker_url
Expand Down Expand Up @@ -76,6 +77,11 @@ def allow_websocket_requests
end
end

def allow_worker_activity_list_fetch
url = "#{workspace_url}/Activities"
add_policy(url, 'GET')
end

end
end
end
31 changes: 20 additions & 11 deletions spec/task_router_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@
expect(decoded['exp']).to eq(seconds + ttl)
end

it 'should allow websocket operations by default' do
it 'should allow websocket operations and activity list fetches by default' do
token = @capability.generate_token
decoded, header = JWT.decode token, 'foobar'
expect(decoded['policies'].size).to eq(2)
expect(decoded['policies'].size).to eq(3)
get_policy = {
"url" => 'https://event-bridge.twilio.com/v1/wschannels/AC123/WK789',
"method" => 'GET',
Expand All @@ -55,51 +55,60 @@
"allow" => true
}
expect(decoded['policies'][1]).to eq(post_policy)

activities_policy = {
'url' => 'https://taskrouter.twilio.com/v1/Workspaces/WS456/Activities',
'method' => 'GET',
'query_filter' => {},
'post_filter' => {},
'allow' => true
}
expect(decoded['policies'][2]).to eq(activities_policy)
end

it 'should add a policy when #allow_worker_activity_updates is called' do
@capability.allow_worker_activity_updates
token = @capability.generate_token
decoded, header = JWT.decode token, 'foobar'
expect(decoded['policies'].size).to eq(3)
expect(decoded['policies'].size).to eq(4)
activity_policy = {
'url' => 'https://taskrouter.twilio.com/v1/Accounts/AC123/Workspaces/WS456/Workers/WK789',
'url' => 'https://taskrouter.twilio.com/v1/Workspaces/WS456/Workers/WK789',
'method' => 'POST',
'query_filter' => {},
'post_filter' => {'ActivitySid' => {'required' => true}},
'allow' => true
}
expect(decoded['policies'][2]).to eq(activity_policy)
expect(decoded['policies'][-1]).to eq(activity_policy)
end

it 'should add a policy when #allow_worker_fetch_attributes is called' do
@capability.allow_worker_fetch_attributes
token = @capability.generate_token
decoded, header = JWT.decode token, 'foobar'
expect(decoded['policies'].size).to eq(3)
expect(decoded['policies'].size).to eq(4)
worker_policy = {
'url' => 'https://taskrouter.twilio.com/v1/Accounts/AC123/Workspaces/WS456/Workers/WK789',
'url' => 'https://taskrouter.twilio.com/v1/Workspaces/WS456/Workers/WK789',
'method' => 'GET',
'query_filter' => {},
'post_filter' => {},
'allow' => true
}
expect(decoded['policies'][2]).to eq(worker_policy)
expect(decoded['policies'][-1]).to eq(worker_policy)
end

it 'should add a policy when #allow_task_reservation_updates is called' do
@capability.allow_task_reservation_updates
token = @capability.generate_token
decoded, header = JWT.decode token, 'foobar'
expect(decoded['policies'].size).to eq(3)
expect(decoded['policies'].size).to eq(4)
task_policy = {
'url' => 'https://taskrouter.twilio.com/v1/Accounts/AC123/Workspaces/WS456/Tasks/**',
'url' => 'https://taskrouter.twilio.com/v1/Workspaces/WS456/Tasks/**',
'method' => 'POST',
'query_filter' => {},
'post_filter' => {'ReservationStatus' => {'required' => true}},
'allow' => true
}
expect(decoded['policies'][2]).to eq(task_policy)
expect(decoded['policies'][-1]).to eq(task_policy)
end
end
end

0 comments on commit 319d754

Please sign in to comment.