WIP Testing

e911_addr
Chris Lacina 7 years ago
parent d3d8788409
commit 5bf08f0476
  1. 90
      demo.py
  2. 15
      e911_demo.py
  3. 5
      flowroutenumbersandmessaging/configuration.py
  4. 42
      flowroutenumbersandmessaging/controllers/routes_controller.py

@ -1,21 +1,23 @@
#!/usr/bin/env python
import pprint
import os
import json
import random
import string
from flowroutenumbersandmessaging.flowroutenumbersandmessaging_client import FlowroutenumbersandmessagingClient
from flowroutenumbersandmessaging.configuration import Configuration
from flowroutenumbersandmessaging.flowroutenumbersandmessaging_client import \
FlowroutenumbersandmessagingClient
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"
# basic_auth_user_name = os.environ.get('FR_ACCESS_KEY')
# basic_auth_password = os.environ.get('FR_SECRET_KEY')
mobile_number = "4254664078"
# Instantiate API client and create controllers for Numbers, Messages, and Routes
client = FlowroutenumbersandmessagingClient(basic_auth_user_name, basic_auth_password)
# Instantiate API client and create controllers for Numbers,
# Messages, and Routes
client = FlowroutenumbersandmessagingClient(Configuration.basic_auth_user_name,
Configuration.basic_auth_password)
numbers_controller = client.numbers
routes_controller = client.routes
messages_controller = client.messages
@ -24,7 +26,9 @@ print("--List Available Area Codes")
max_setup_cost = 3.25
limit = 3
offset = None
result = numbers_controller.list_available_area_codes(limit, offset, max_setup_cost)
result = numbers_controller.list_available_area_codes(limit,
offset,
max_setup_cost)
pprint.pprint(result)
print("--List Available Exchange Codes")
@ -32,7 +36,10 @@ limit = 3
offset = None
max_setup_cost = None
areacode = 347
result = numbers_controller.list_available_exchange_codes(limit, offset, max_setup_cost, areacode)
result = numbers_controller.list_available_exchange_codes(limit,
offset,
max_setup_cost,
areacode)
pprint.pprint(result)
print("--Search for Purchasable Phone Numbers")
@ -43,20 +50,28 @@ limit = 3
offset = None
rate_center = None
state = None
result = numbers_controller.search_for_purchasable_phone_numbers(starts_with, contains, ends_with, limit, offset, rate_center, state)
result = numbers_controller.search_for_purchasable_phone_numbers(starts_with,
contains,
ends_with,
limit,
offset,
rate_center,
state)
pprint.pprint(result)
print("--Purchase a Phone Number")
purchasable_number = result['data'][0]['id']
#result = numbers_controller.purchase_a_phone_number(purchasable_number)
if len(result['data']):
print("--Purchase a Phone Number")
purchasable_number = result['data'][0]['id']
# result = numbers_controller.purchase_a_phone_number(purchasable_number)
print("--List Account Phone Numbers")
starts_with = 201
starts_with = None
ends_with = None
contains = None
limit = 3
offset = None
result = numbers_controller.list_account_phone_numbers(starts_with, ends_with, contains, limit, offset)
result = numbers_controller.list_account_phone_numbers(starts_with, ends_with,
contains, limit, offset)
pprint.pprint(result)
@ -66,10 +81,18 @@ result = numbers_controller.list_phone_number_details(number_id)
pprint.pprint(result)
print("---Create an Inbound Route")
print("---First list all available edge strategies")
# result = routes_controller.list_edge_strategies()
# pprint.pprint(result)
# Function to generate six-charac random string
def id_generator(size=6, chars=string.ascii_lowercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
new_route = id_generator() + '.sonsofodin.com'
new_route = '{}.sonsofodin.com'.format(id_generator())
alias = id_generator()
for i in range(10):
alias += str(i)
@ -78,8 +101,9 @@ request_body = '{ \
"type": "route", \
"attributes": { \
"route_type": "host", \
"value": "' + new_route +'", \
"alias": "' + alias + '" \
"value": "' + new_route + '", \
"alias": "' + alias + '", \
"edge_strategy": "1" \
} \
} \
}'
@ -97,7 +121,7 @@ secrouteid = result['data'][2]['id']
request_body = '{ \
"data": { \
"type": "route", \
"id": "' + str(prirouteid) +'" \
"id": "' + str(prirouteid) + '" \
} \
}'
@ -111,7 +135,7 @@ else:
request_body = '{ \
"data": { \
"type": "route", \
"id": "' + str(secrouteid) +'" \
"id": "' + str(secrouteid) + '" \
} \
}'
@ -122,7 +146,21 @@ if result is None:
else:
print (result)
body_with_space = "hello there{}how are you?".format(chr(160))
request_body = '{ \
"data": { \
"type": "message", \
"attributes": { \
"to": "' + str(mobile_number) + '", \
"from": "' + str(number_id) + '", \
"body": "' + unicode(body_with_space, "utf-8") + '", \
"is_mms": "false" \
} \
} \
}'
request_body_mms = '{ \
"data": { \
"type": "message", \
"attributes": { \
@ -136,19 +174,19 @@ request_body = '{ \
}'
print("---Send A Message")
#result = messages_controller.send_a_message(request_body)
#pprint.pprint(result)
result = messages_controller.send_a_message(request_body)
pprint.pprint(result)
print("---Look Up A Set Of Messages")
start_date = "2017-12-01"
end_date = "2018-01-08"
limit = 2
result = messages_controller.look_up_a_set_of_messages(start_date, end_date, limit)
result = messages_controller.look_up_a_set_of_messages(start_date,
end_date,
limit)
pprint.pprint(result)
print ("---Look Up A Message Detail Record")
message_id = result['data'][0]['id']
result = messages_controller.look_up_a_message_detail_record(message_id)
pprint.pprint(result)

@ -27,9 +27,16 @@ result = e911s_controller.validate_address(
zip="98101")
pprint.pprint(result)
print("--Get Details for a specific E911 Record")
result = e911s_controller.get_e911(11476)
pprint.pprint(result)
e911_id = None
# If the user has any E911 records, pull one up
for e in result['data']:
e911_id = e['id']
break
if e911_id:
print("--Get Details for a specific E911 Record")
result = e911s_controller.get_e911(e911_id)
pprint.pprint(result)
print("--Create and Validate an Address")
result = e911s_controller.create_address(
@ -37,7 +44,7 @@ result = e911s_controller.create_address(
first_name="Chris",
last_name="Smith",
street_name="3rd Ave",
street_number="1182",
street_number="1218",
city="Seattle",
state="WA",
country="USA",

@ -7,6 +7,7 @@
"""
from .api_helper import APIHelper
class Configuration(object):
"""A class used for configuring the SDK by a user.
@ -25,9 +26,9 @@ class Configuration(object):
# The username to use with basic authentication
# TODO: Set an appropriate value
basic_auth_user_name = "TODO: Replace"
basic_auth_user_name = "22476860"
# The password to use with basic authentication
# TODO: Set an appropriate value
basic_auth_password = "TODO: Replace"
basic_auth_password = "FYzckHAgBdHm1QpKbe6jdMivOWFlnApf"

@ -14,10 +14,11 @@ 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."""
class RoutesController(BaseController):
"""A Controller to access Endpoints in the
flowroutenumbersandmessaging API."""
def create_an_inbound_route(self, body):
"""Does a POST request to /v2/routes.
@ -52,15 +53,19 @@ class RoutesController(BaseController):
}
# Prepare and execute request
_request = self.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(json.loads(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)
# Endpoint and global error handling using HTTP status codes.
if _context.response.status_code == 401:
raise ErrorException('401 Unauthorized – There was an issue with your API credentials.', _context)
raise ErrorException('401 Unauthorized – '
'There was an issue with your API credentials.', _context)
elif _context.response.status_code == 403:
raise ErrorException('403 Forbidden – The server understood the request but refuses to authorize it.', _context)
raise ErrorException('403 Forbidden – '
'The server understood the request but refuses to authorize it.', _context)
elif _context.response.status_code == 404:
raise ErrorException('404 The specified resource was not found', _context)
self.validate_response(_context)
@ -156,7 +161,8 @@ class RoutesController(BaseController):
_query_url = APIHelper.clean_url(_query_builder)
# Prepare and execute request
_request = self.http_client.patch(_query_url, parameters=APIHelper.json_serialize(json.loads(body)))
_request = self.http_client.patch(_query_url,
parameters=APIHelper.json_serialize(json.loads(body)))
BasicAuth.apply(_request)
_context = self.execute_request(_request)
@ -168,8 +174,8 @@ class RoutesController(BaseController):
self.validate_response(_context)
def update_failover_voice_route(self,
number_id,
body):
number_id,
body):
"""Does a PATCH request to /v2/numbers/{number_id}/relationships/failover_route.
Use this endpoint to update the failover voice route for a phone
@ -213,3 +219,23 @@ class RoutesController(BaseController):
elif _context.response.status_code == 404:
raise ErrorException('The specified resource was not found', _context)
self.validate_response(_context)
def list_edge_strategies(self):
# Prepare query URL
_query_builder = Configuration.base_uri
_query_builder += '/v2/routes/edge_strategies'
_query_url = APIHelper.clean_url(_query_builder)
print("Query is : {}".format(_query_url))
# Prepare and execute request
_request = self.http_client.get(_query_url)
BasicAuth.apply(_request)
_context = self.execute_request(_request)
# Endpoint and global error handling using HTTP status codes.
if _context.response.status_code == 401:
raise APIException('Unauthorized', _context)
elif _context.response.status_code == 404:
raise APIException('Not Found', _context)
self.validate_response(_context)
return APIHelper.json_deserialize(_context.response.raw_body)

Loading…
Cancel
Save