in jobs/eam-integrations/scripts/api/XMatters/XMatters.py [0:0]
def add_user(wd_user, xm_sites):
logger.info("Adding user %s to XMatters" % (wd_user["User_Email_Address"]))
url = _config.base_URL + "/people"
if USE_BASIC_AUTH:
headers = {"Content-Type": "application/json"}
else:
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + get_access_token(),
}
site_key = (
wd_user.get("User_Home_Country", "")
+ ":"
+ wd_user.get("User_Home_Postal_Code", "")
)
person_data = {
"firstName": sanitize_string_properties(
wd_user.get("User_Preferred_First_Name", "[NO FIRST NAME]")
),
"lastName": sanitize_string_properties(
wd_user.get("User_Preferred_Last_Name", "[NO LAST NAME]")
),
"targetName": wd_user["User_Email_Address"],
"site": xm_sites[site_key],
"recipientType": "PERSON",
"status": "ACTIVE",
"roles": ["Standard User"],
"supervisors": [_config.supervisor_id],
"properties": {
"Home City": wd_user.get("User_Home_City", ""),
"Home Country": wd_user.get("User_Home_Country", ""),
"Home Zipcode": wd_user.get("User_Home_Postal_Code", "")[:20]
},
}
logger.debug("will upload this:")
logger.debug(json.dumps(person_data))
if USE_BASIC_AUTH:
response = requests.post(
url,
headers=headers,
auth=(_config.xm_username, _config.xm_password),
data=json.dumps(person_data),
proxies=_config.proxies,
)
else:
response = requests.post(
url, headers=headers, data=json.dumps(person_data), proxies=_config.proxies
)
if response.status_code == 201:
rjson = response.json()
else:
logger.critical(
"ERROR: something went wrong adding user %s"
% (wd_user["User_Email_Address"])
)
logger.critical(response)
logger.critical(response.content)
raise Exception(response.content)
person_data["id"] = rjson["id"]
add_work_email_device(person_data)
return person_data # for the unittest