def process_content_moderation()

in source/consumer/lambda_handler.py [0:0]


def process_content_moderation(asset, workflow, results):
    metadata = json.loads(results)
    es = connect_es(es_endpoint)
    extracted_items = []
    if isinstance(metadata, list):
        for page in metadata:
            if "ModerationLabels" in page:
                for item in page["ModerationLabels"]:
                    try:
                        item["Operator"] = "content_moderation"
                        item["Workflow"] = workflow
                        if "ModerationLabel" in item:
                            # flatten the inner ModerationLabel array
                            item["Name"] = item["ModerationLabel"]["Name"]
                            item["ParentName"] = ''
                            if 'ParentName' in item["ModerationLabel"]:
                                item["ParentName"] = item["ModerationLabel"]["ParentName"]
                            item["Confidence"] = ''
                            if 'Confidence' in item["ModerationLabel"]:
                                item["Confidence"] = item["ModerationLabel"]["Confidence"]
                            # Delete the flattened array
                            del item["ModerationLabel"]
                        extracted_items.append(item)
                    except KeyError as e:
                        print("KeyError: " + str(e))
                        print("Item: " + json.dumps(item))
    else:
        if "ModerationLabels" in metadata:
            for item in metadata["ModerationLabels"]:
                try:
                    item["Operator"] = "content_moderation"
                    item["Workflow"] = workflow
                    if "ModerationLabel" in item:
                        # flatten the inner ModerationLabel array
                        item["Name"] = item["ModerationLabel"]["Name"]
                        item["ParentName"] = ''
                        if 'ParentName' in item["ModerationLabel"]:
                            item["ParentName"] = item["ModerationLabel"]["ParentName"]
                        item["Confidence"] = ''
                        if 'Confidence' in item["ModerationLabel"]:
                            item["Confidence"] = item["ModerationLabel"]["Confidence"]
                        # Delete the flattened array
                        del item["ModerationLabel"]
                    extracted_items.append(item)
                except KeyError as e:
                    print("KeyError: " + str(e))
                    print("Item: " + json.dumps(item))
    bulk_index(es, asset, "content_moderation", extracted_items)