From a161c094670aec8b15e2f72fab0efefa5dd4901a Mon Sep 17 00:00:00 2001 From: Chris Lacina Date: Mon, 4 Jun 2018 16:17:33 -0700 Subject: [PATCH 1/2] Added CNAM and E911 Demos --- cnam_demo.py | 20 +++++++++++++++---- .../controllers/e911s_controller.py | 2 +- number_route_message_demo.py | 8 ++++++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/cnam_demo.py b/cnam_demo.py index 8b72a28..742d061 100644 --- a/cnam_demo.py +++ b/cnam_demo.py @@ -3,19 +3,22 @@ import pprint import os import random import string -from flowroutenumbersandmessaging.flowroutenumbersandmessaging_client import FlowroutenumbersandmessagingClient +from flowroutenumbersandmessaging.flowroutenumbersandmessaging_client \ + import FlowroutenumbersandmessagingClient # Helper function for random strings def random_generator(size=4, chars=string.ascii_uppercase + string.digits): return ''.join(random.choice(chars) for x in range(size)) + # Set up your api credentials and test mobile number for outbound SMS or MMS basic_auth_user_name = os.environ.get('FR_ACCESS_KEY') basic_auth_password = os.environ.get('FR_SECRET_KEY') # Instantiate API client and create controllers for Numbers and E911s -client = FlowroutenumbersandmessagingClient(basic_auth_user_name, basic_auth_password) +client = FlowroutenumbersandmessagingClient(basic_auth_user_name, + basic_auth_password) numbers_controller = client.numbers cnams_controller = client.cnams cnam_id = None @@ -38,15 +41,24 @@ if len(result['data']): if len(result['data']): cnam_id = result['data']['id'] -print("\n--Search for CNAM Record") +print("\n--Search for CNAM Record by contains") result = cnams_controller.search_cnams(contains='CHRIS') pprint.pprint(result) +print("\n--Search for CNAM Record by startswith") +result = cnams_controller.search_cnams(starts_with='CHRIS') +pprint.pprint(result) + +print("\n--Search for CNAM Record by endswith") +result = cnams_controller.search_cnams(ends_with='CHRIS') +pprint.pprint(result) + print("\n--Create a CNAM Record") cnam_value = 'FR ' + random_generator() result = cnams_controller.create_cnam_record(cnam_value) pprint.pprint(result) -print("\nNOTE: Newly created CNAM records need to be approved first before they can be associated with your long code number.") +print("\nNOTE: Newly created CNAM records need to be approved first before " + "they can be associated with your long code number.") print("\n--Associate a CNAM Record to a DID") our_numbers = numbers_controller.list_account_phone_numbers() diff --git a/flowroutenumbersandmessaging/controllers/e911s_controller.py b/flowroutenumbersandmessaging/controllers/e911s_controller.py index 50861f8..14bbcd8 100644 --- a/flowroutenumbersandmessaging/controllers/e911s_controller.py +++ b/flowroutenumbersandmessaging/controllers/e911s_controller.py @@ -458,7 +458,7 @@ class E911sController(BaseController): """ # Prepare query URL _query_builder = Configuration.base_uri - _query_builder += '/v2/e911s/{}'.format(e911_id) + _query_builder += '/v2/e911s/{}/relationships/numbers'.format(e911_id) _query_url = APIHelper.clean_url(_query_builder) # Prepare and execute request diff --git a/number_route_message_demo.py b/number_route_message_demo.py index 4e0d175..8f60ab5 100755 --- a/number_route_message_demo.py +++ b/number_route_message_demo.py @@ -13,7 +13,7 @@ print("Number/Route Management v2 & Messaging v2.1 Demo") # Set up your api credentials and test mobile number for outbound SMS or MMS # basic_auth_user_name = os.environ.get('FR_ACCESS_KEY') # basic_auth_password = os.environ.get('FR_SECRET_KEY') -mobile_number = "YOUR_MOBILE_NUMBER" +mobile_number = "YOUR MOBILE NUMBER HERE" # Instantiate API client and create controllers for Numbers, @@ -212,10 +212,14 @@ request_body_with_dlr = '{ \ } \ }' -print("---Send A Message") +print("---Send an SMS Message") result = messages_controller.send_a_message(request_body) pprint.pprint(result) +print("---Send an MMS Message") +result = messages_controller.send_a_message(request_body_mms) +pprint.pprint(result) + print("---Send A Message with a DLR") sms_url = 'http://example.com/sms/special' result = messages_controller.send_a_message(request_body_with_dlr) From 230cf5bab7589342cc82160c43ebe7f1526df176 Mon Sep 17 00:00:00 2001 From: Chris Lacina Date: Tue, 5 Jun 2018 11:38:27 -0700 Subject: [PATCH 2/2] Have purchase number print proper error on insufficient funds. --- number_route_message_demo.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/number_route_message_demo.py b/number_route_message_demo.py index 8f60ab5..af4c186 100755 --- a/number_route_message_demo.py +++ b/number_route_message_demo.py @@ -67,10 +67,15 @@ pprint.pprint(result) purchasable_number = None if len(result['data']): print("--Purchase a Phone Number") - print("NOTE: This demo has been disabled as it pulls credit from your account") + print("NOTE: This demo has been disabled as it pulls " + "credit from your account") # purchasable_number = result['data'][0]['id'] - # result = numbers_controller.purchase_a_phone_number(purchasable_number) - # pprint.pprint(result) + # try: + # result = numbers_controller.purchase_a_phone_number(purchasable_number) + # pprint.pprint(result) + # except Exception as e: + # pprint.pprint(e.context.response.raw_body) + # purchasable_number = None print("--List Account Phone Numbers") starts_with = None @@ -213,17 +218,26 @@ request_body_with_dlr = '{ \ }' print("---Send an SMS Message") -result = messages_controller.send_a_message(request_body) -pprint.pprint(result) +try: + result = messages_controller.send_a_message(request_body) + pprint.pprint(result) +except Exception as e: + pprint.pprint(e.context.response.raw_body) print("---Send an MMS Message") -result = messages_controller.send_a_message(request_body_mms) -pprint.pprint(result) +try: + result = messages_controller.send_a_message(request_body_mms) + pprint.pprint(result) +except Exception as e: + pprint.pprint(e.context.response.raw_body) print("---Send A Message with a DLR") sms_url = 'http://example.com/sms/special' -result = messages_controller.send_a_message(request_body_with_dlr) -pprint.pprint(result) +try: + result = messages_controller.send_a_message(request_body_with_dlr) + pprint.pprint(result) +except Exception as e: + pprint.pprint(e.context.response.raw_body) print("---Look Up A Set Of Messages") start_date = datetime.datetime.now() - relativedelta(days=30)