diff --git a/demo.py b/demo.py index 32532ac..f248871 100755 --- a/demo.py +++ b/demo.py @@ -6,7 +6,7 @@ from flowroutenumbersandmessaging.flowroutenumbersandmessaging_client import Flo from flowroutenumbersandmessaging.models import * from flowroutenumbersandmessaging.models.new_route import NewRoute -print("Number Control Demo") +print("Number/Route Management v2 & Messaging v2.1 Demo") # Set up your api credentials basic_auth_user_name = os.environ.get('FR_ACCESS_KEY') @@ -64,20 +64,18 @@ result = numbers_controller.list_account_phone_numbers(starts_with, ends_with, c pprint.pprint(result) -#print ("---Create an Inbound Route") -#request_body = '{ -# "data": { -# "type": "route", -# "attributes": { -# "route_type": "host", -# "value": "www.example.com", -# "alias": "new_route_id" -# } -# } -#}' - -#routepost = NewRoute(json.dumps({"data": {"type": "route", "attributes": {"route_type": "host", "value": "13471654563", "alias": "new_route_56"}}})) -#result = routes_controller.create_an_inbound_route(routepost) +print ("---Create an Inbound Route") +request_body = '{ \ + "data": { \ + "type": "route", \ + "attributes": { \ + "route_type": "host", \ + "value": "' + str(number_id) +'", \ + "alias": "new_route_id" \ + } \ + } \ +}' + result = routes_controller.create_an_inbound_route(request_body) pprint.pprint(result) @@ -85,19 +83,46 @@ print ("---List Inbound Routes") result = routes_controller.list_inbound_routes() pprint.pprint(result) -#print ("---Update Primary Voice Route") -#routeid = result['data'][1]['id'] -#result = routes_controller.update_primary_voice_route() -#pprint.pprint(result) -# -#print ("---Update Failover Voice Route") -#routeid = result['data'][2]['id'] -#result = routes_controller.update_failover_voice_route() -#pprint.pprint(result) +request_body = '{ \ + "data": { \ + "type": "route", \ + "id": "87050" \ + } \ +}' + +print ("---Update Primary Voice Route") +routeid = result['data'][1]['id'] +result = routes_controller.update_primary_voice_route(number_id, request_body) +pprint.pprint(result) + +request_body = '{ \ + "data": { \ + "type": "route", \ + "id": "87051" \ + } \ +}' -#print ("---Send A Message") -#result = messages_controller.send_a_message() -#pprint.pprint(result) +print ("---Update Failover Voice Route") +routeid = result['data'][2]['id'] +result = routes_controller.update_failover_voice_route(number_id, request_body) +pprint.pprint(result) + +request_body = '{ \ + "data": { \ + "type": "message", \ + "attributes": { \ + "to": "12067392634", \ + "from": "' + str(testnumber) + '", \ + "body": "hello there", \ + "is_mms": "true", \ + "media_urls": ["http://s3.amazonaws.com/barkpost-assets/50+GIFs/37.gif"] \ + } \ + } \ +}' + +print ("---Send A Message") +result = messages_controller.send_a_message(request_body) +pprint.pprint(result) print ("---Look Up A Message Detail Record") message_id = "mdr2-ca82be46e6ba11e79d08862d092cf73d" @@ -105,5 +130,5 @@ result = messages_controller.look_up_a_message_detail_record(message_id) pprint.pprint(result) print ("---Look Up A Set Of Messages") -result = messages_controller.look_up_a_set_of_messages() +result = messages_controller.look_up_a_set_of_messages('2017-12-31') pprint.pprint(result) diff --git a/flowroutenumbersandmessaging/controllers/messages_controller.py b/flowroutenumbersandmessaging/controllers/messages_controller.py index b053721..182b22c 100644 --- a/flowroutenumbersandmessaging/controllers/messages_controller.py +++ b/flowroutenumbersandmessaging/controllers/messages_controller.py @@ -12,6 +12,7 @@ from ..configuration import Configuration from ..http.auth.basic_auth import BasicAuth from ..models.mdr_2 import MDR2 from ..exceptions.error_exception import ErrorException +import json class MessagesController(BaseController): @@ -53,13 +54,17 @@ class MessagesController(BaseController): the request. """ + parsed_end_date = None + + if end_date is not None: + parsed_end_date = APIHelper.RFC3339DateTime(end_date) # Prepare query URL _query_builder = Configuration.base_uri _query_builder += '/v2.1/messages' _query_parameters = { 'start_date': APIHelper.RFC3339DateTime(start_date), - 'end_date': APIHelper.RFC3339DateTime(end_date), + 'end_date': parsed_end_date, 'limit': limit, 'offset': offset } @@ -165,12 +170,12 @@ class MessagesController(BaseController): # Prepare headers _headers = { - 'accept': 'application/json', - 'content-type': 'application/json; charset=utf-8' + 'accept': 'application/vnd.api+json', + 'content-type': 'application/vnd.api+json; charset=utf-8' } # Prepare and execute request - _request = self.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body)) + _request = self.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(json.loads(body))) BasicAuth.apply(_request) _context = self.execute_request(_request) diff --git a/flowroutenumbersandmessaging/controllers/numbers_controller.py b/flowroutenumbersandmessaging/controllers/numbers_controller.py index 1ef264a..fcb06b6 100644 --- a/flowroutenumbersandmessaging/controllers/numbers_controller.py +++ b/flowroutenumbersandmessaging/controllers/numbers_controller.py @@ -318,6 +318,8 @@ class NumbersController(BaseController): _query_builder = APIHelper.append_url_with_template_parameters(_query_builder, { 'id': id }) + # Return appropriate type + return APIHelper.json_deserialize(_context.response.raw_body) _query_url = APIHelper.clean_url(_query_builder) # Prepare headers diff --git a/flowroutenumbersandmessaging/controllers/routes_controller.py b/flowroutenumbersandmessaging/controllers/routes_controller.py index be6a3cb..7acf3e5 100644 --- a/flowroutenumbersandmessaging/controllers/routes_controller.py +++ b/flowroutenumbersandmessaging/controllers/routes_controller.py @@ -12,14 +12,14 @@ from ..configuration import Configuration from ..http.auth.basic_auth import BasicAuth from ..exceptions.error_exception import ErrorException from ..exceptions.api_exception import APIException +import json class RoutesController(BaseController): """A Controller to access Endpoints in the flowroutenumbersandmessaging API.""" - def create_an_inbound_route(self, - body): + def create_an_inbound_route(self, body): """Does a POST request to /v2/routes. Creates a new inbound route which can then be associated with phone @@ -30,7 +30,7 @@ class RoutesController(BaseController): body (NewRoute): The new inbound route to be created. Returns: - void: Response from the API. CREATED + string: Response from the API. CREATED Raises: APIException: When an error occurs while fetching the data from @@ -51,9 +51,10 @@ class RoutesController(BaseController): } # Prepare and execute request - _request = self.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body)) + _request = self.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(json.loads(body))) BasicAuth.apply(_request) _context = self.execute_request(_request) + print _context.response.status_code # Endpoint and global error handling using HTTP status codes. if _context.response.status_code == 401: @@ -62,6 +63,9 @@ class RoutesController(BaseController): raise ErrorException('The specified resource was not found', _context) self.validate_response(_context) + # Return appropriate type + return APIHelper.json_deserialize(_context.response.raw_body) + def list_inbound_routes(self, limit=None, offset=None): @@ -118,9 +122,7 @@ class RoutesController(BaseController): return APIHelper.json_deserialize(_context.response.raw_body) - def update_primary_voice_route(self, - number_id, - body): + def update_primary_voice_route(self, number_id, body): """Does a PATCH request to /v2/numbers/{number_id}/relationships/primary_route. Use this endpoint to update the primary voice route for a phone @@ -147,13 +149,13 @@ class RoutesController(BaseController): # Prepare query URL _query_builder = Configuration.base_uri _query_builder += '/v2/numbers/{number_id}/relationships/primary_route' - _query_builder = APIHelper.append_url_with_template_parameters(_query_builder, { + _query_builder = APIHelper.append_url_with_template_parameters(_query_builder, { 'number_id': number_id }) _query_url = APIHelper.clean_url(_query_builder) # Prepare and execute request - _request = self.http_client.patch(_query_url, parameters=str(body)) + _request = self.http_client.patch(_query_url, parameters=APIHelper.json_serialize(json.loads(body))) BasicAuth.apply(_request) _context = self.execute_request(_request) @@ -194,13 +196,13 @@ class RoutesController(BaseController): # Prepare query URL _query_builder = Configuration.base_uri _query_builder += '/v2/numbers/{number_id}/relationships/failover_route' - _query_builder = APIHelper.append_url_with_template_parameters(_query_builder, { + _query_builder = APIHelper.append_url_with_template_parameters(_query_builder, { 'number_id': number_id }) _query_url = APIHelper.clean_url(_query_builder) # Prepare and execute request - _request = self.http_client.patch(_query_url, parameters=str(body)) + _request = self.http_client.patch(_query_url, parameters=APIHelper.json_serialize(json.loads(body))) BasicAuth.apply(_request) _context = self.execute_request(_request)