def add_work_email_device()

in jobs/eam-integrations/scripts/api/XMatters/XMatters.py [0:0]


def add_work_email_device(xm_user):
    logger.info("Adding device %s to XMatters" % (xm_user["targetName"]))
    url = _config.base_URL + "/devices"

    if USE_BASIC_AUTH:
        headers = {"Content-Type": "application/json"}
    else:
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + get_access_token(),
        }

    if not re.search("@", xm_user["targetName"]):
        logger.error(
            "NOT adding device for %s because that ain't no email address!"
            % xm_user["targetName"]
        )
        return False

    device_data = {
        "recipientType": "DEVICE",
        "deviceType": "EMAIL",
        "owner": xm_user["id"],
        "name": "Work Email",
        "emailAddress": xm_user["targetName"],
        "delay": 0,
        "priorityThreshold": "MEDIUM",
        "testStatus": "UNTESTED",
    }

    if USE_BASIC_AUTH:
        response = requests.post(
            url,
            headers=headers,
            auth=(_config.xm_username, _config.xm_password),
            data=json.dumps(device_data),
            proxies=_config.proxies,
        )
    else:
        response = requests.post(
            url, headers=headers, data=json.dumps(device_data), proxies=_config.proxies
        )

    if response.status_code == 201:
        return True
    else:
        logger.critical(
            "ERROR: something went wrong adding device for user %s"
            % (xm_user["targetName"])
        )
        logger.critical(response)
        logger.critical(response.content)
        raise Exception(response.content)