in jobs/eam-integrations/scripts/api/XMatters/XMatters.py [0:0]
def get_devices_by_person(person_id):
"""Gets a person's device(s)
Parameters:
ID (targetName or id)
Returns:
{
"count":3,
"total":3,
"data":[
{
"id":"a4d69579-f436-4e85-9d93-703714d85d72",
"name":"Home Phone",
"recipientType":"DEVICE",
"phoneNumber":"+13235553643",
"targetName":"akaur",
"deviceType":"VOICE",
[...]
"""
logger.info("\n")
logger.info("Gathering all devices for %s" % person_id)
url = _config.base_URL + "/people/" + person_id + "/devices"
headers = {"Authorization": "Bearer " + get_access_token()}
if USE_BASIC_AUTH:
headers = {}
xm_devices = []
while True:
if USE_BASIC_AUTH:
response = requests.get(
url,
auth=(_config.xm_username, _config.xm_password),
proxies=_config.proxies,
)
else:
response = requests.get(url, headers=headers, proxies=_config.proxies)
if response.status_code == 200:
rjson = response.json()
logger.debug(
"Retrieved "
+ str(rjson["count"])
+ " of "
+ str(rjson["total"])
+ " devices."
)
else:
logger.critical(response)
raise Exception(response.content)
for device in rjson["data"]:
logger.debug("Device - %s %s" % (device["name"], device["targetName"]))
xm_devices.append(device)
if "next" in rjson["links"]:
url = _config.url + rjson["links"]["next"]
else:
break
return xm_devices