8000 Merge remote-tracking branch 'github-private/taskrouter-events' into wds · jkzilla/twilio-python@dcc4cb6 · GitHub
[go: up one dir, main page]

Skip to content

Commit dcc4cb6

Browse files
committed
Merge remote-tracking branch 'github-private/taskrouter-events' into wds
2 parents c3b4ccd + 33badd6 commit dcc4cb6

File tree

7 files changed

+153
-0
lines changed

7 files changed

+153
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"sid": "EVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3+
"description": "Worker JustinWorker updated to Idle Activity",
4+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
5+
"event_type": "worker.activity",
6+
"resource_type": "worker",
7+
"resource_sid": "WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
8+
"resource_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers/WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
9+
"event_date": "2015-02-07T00:32:41Z",
10+
"source": "twilio",
11+
"source_ip_address": "1.2.3.4",
12+
"actor_type": "workspace",
13+
"actor_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
14+
"actor_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
15+
"url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events/EVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
16+
"event_data": {
17+
"workspace_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
18+
"workspace_name": "WorkspaceName",
19+
"worker_sid": "WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
20+
"worker_name": "JustinWorker",
21+
"worker_attributes": "{}",
22+
"worker_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
23+
"worker_activity_name": "Offline",
24+
"worker_time_in_previous_activity": "26"
25+
}
26+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"meta": {
3+
"key": "events",
4+
"page": 0,
5+
"page_size": 50,
6+
"first_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events?PageSize=50&Page=0",
7+
"previous_page_url": null,
8+
"url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events?PageSize=50&Page=0",
9+
"next_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events?PageSize=50&Page=1&PageToken=ENeyJTaWQiOiAiRVZhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsICJUaW1lc3RhbXAiOiAiMTQyMzI2OTE2MSIsICJXb3Jrc3BhY2VTaWQiOiAiV0FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSJ9"
10+
},
11+
"events": [
12+
{
13+
"sid": "EVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
14+
"description": "Worker JustinWorker updated to Idle Activity",
15+
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
16+
"event_type": "worker.activity",
17+
"resource_type": "worker",
18+
"resource_sid": "WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
19+
"resource_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers/WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
20+
"event_date": "2015-02-07T00:32:41Z",
21+
"source": "twilio",
22+
"source_ip_address": "1.2.3.4",
23+
"actor_type": "workspace",
24+
"actor_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
25+
"actor_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
26+
"url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events/EVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
27+
"event_data": {
28+
"workspace_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
29+
"workspace_name": "WorkspaceName",
30+
"worker_sid": "WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
31+
"worker_name": "JustinWorker",
32+
"worker_attributes": "{}",
33+
"worker_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
34+
"worker_activity_name": "Offline",
35+
"worker_time_in_previous_activity": "26"
36+
}
37+
}
38+
]
39+
}

tests/task_router/test_events.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import unittest
2+
3+
from mock import patch
4+
5+
from tests.tools import create_mock_json
6+
from twilio.rest.resources.task_router.events import Events
7+
8+
9+
AUTH = ("AC123", "token")
10+
BASE_URI = "https://taskrouter.twilio.com/v1/Accounts/AC123/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
11+
EVENT_SID = "EVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
12+
13+
14+
class EventTest(unittest.TestCase):
15+
@patch('twilio.rest.resources.base.make_twilio_request')
16+
def test_get(self, request):
17+
resp = create_mock_json('tests/resources/task_router/events_instance.json')
18+
resp.status_code = 200
19+
request.return_value = resp
20+
21+
uri = "{}/Events/{}".format(BASE_URI, EVENT_SID)
22+
list_resource = Events(BASE_URI, AUTH)
23+
list_resource.get(EVENT_SID)
24+
request.assert_called_with("GET", uri, auth=AUTH)
25+
26+
@patch('twilio.rest.resources.base.make_twilio_request')
27+
def test_list(self, request):
28+
resp = create_mock_json('tests/resources/task_router/events_list.json')
29+
resp.status_code = 200
30+
request.return_value = resp
31+
32+
uri = "{}/Events".format(BASE_URI)
33+
list_resource = Events(BASE_URI, AUTH)
34+
list_resource.list()
35+
request.assert_called_with("GET", uri, params={}, auth=AUTH)

twilio/rest/__init__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
make_request,
99
Accounts,
1010
Activities,
11+
Events,
1112
Applications,
1213
AuthorizedConnectApps,
1314
CallerIds,
@@ -268,6 +269,14 @@ def activities(self, workspace_sid):
268269
base_uri = "{}/{}".format(self.workspace_uri, workspace_sid)
269270
return Activities(base_uri, self.auth, self.timeout)
270271< F438 /code>

272+
def events(self, workspace_sid):
273+
"""
274+
Return a :class:`Events` instance for the :class:`Event` with the given
275+
workspace_sid
276+
"""
277+
base_uri = "{}/{}".format(self.workspace_uri, workspace_sid)
278+
return Events(base_uri, self.auth, self.timeout)
279+
271280
def reservations(self, workspace_sid, task_sid):
272281
"""
273282
Return a :class:`Reservations` instance for the :class:`Reservation`

twilio/rest/resources/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
from .task_router import (
5050
Activity,
5151
Activities,
52+
Event,
53+
Events,
5254
Reservation,
5355
Reservations,
5456
Task,

twilio/rest/resources/task_router/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
Activities
44
)
55

6+
from .events import (
7+
Event,
8+
Events
9+
)
10+
611
from .reservations import (
712
Reservation,
813
Reservations
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from twilio.rest.resources.base import NextGenInstanceResource, NextGenListResource
2+
3+
4+
class Event(NextGenInstanceResource):
5+
""" A taskrouter event resource """
6+
pass
7+
8+
9+
class Events(NextGenListResource):
10+
name = "Events"
11+
instance = Event
12+
13+
def list(self, **kwargs):
14+
"""
15+
Returns a page of :class:`Event` resources as a list. For paging
16+
information see :class:`NextGenListResource`
17+
:param minutes: (Optional, Default=15) Definition of the interval in
18+
minutes prior to now.
19+
:param start_date: (Optional, Default=15 minutes prior) Filter events
20+
by a start date.
21+
:param end_date: (Optional, Default=Now) Filter events by an end date.
22+
:param resource_sid: (Optional) Sid of the event resource.
23+
:param event_type: (Optional) The type of event to filter by.
24+
"""
25+
return super(Events, self).list(**kwargs)
26+
27+
def get_instances(self, params):
28+
"""
29+
Query the list resource for a list of InstanceResources.
30+
Raises a :exc:`~twilio.TwilioRestException` if requesting a page of
31+
results that does not exist.
32+
:param dict params: List of URL parameters to be included in request
33+
:param str page_token: Token of the page of results to retrieve
34+
:param int page_size: The number of results to be returned.
35+
:returns: -- the list of resources
36+
"""
37+
return super(Events, self).get_instances(params)

0 commit comments

Comments
 (0)
0