def transform_user_extensions()

in cartography/intel/crxcavator/crxcavator.py [0:0]


def transform_user_extensions(user_extension_json):
    """
    Transforms the raw extensions JSON from the API into a list of extensions mapped to users
    :param user_extension_json:  The JSON text blob returned from the CRXcavator API
    :return: Tuple containing unique users list and extension info for ingestion
    """
    user_extensions = user_extension_json.items()
    users_set = set()
    extensions_by_user = []
    for extension in user_extensions:
        for details in extension[1].items():
            for user in details[1]['users']:
                users_set.add(user)
                extensions_by_user.append({
                    'id': "{0}|{1}".format(extension[0], details[0]),
                    'user': user})
    if len(users_set) == 0:
        raise ValueError('No users returned from CRXcavator')
    if len(extensions_by_user) == 0:
        raise ValueError('No user->extension mapping returned from CRXcavator')

    return list(users_set), extensions_by_user