def table_results()

in Solutions/DomainTools/Playbooks/CustomConnector/DomainTools_FunctionAppConnector/InvestigateDomain/__init__.py [0:0]


def table_results(custom_tuple, api_resp_json, max_pivot):
    try:
        table_data = {}
        for i in custom_tuple:
            title, key, query, key_type = i
            if key_type not in [list, dict]:
                if "." in key:
                    keys = key.split(".")
                    data = api_resp_json[keys[0]]
                    if key_type is int:
                        table_data[title] = (
                            generate_link(query, data.get(keys[1]))
                            if data.get(keys[1])
                            else f"<a href=https://iris.domaintools.com/investigate/search/?q={query}:{ data.get(keys[1])}>{data.get(keys[1])}</a>"
                            if data.get(keys[1]) == 0
                            else ""
                        )
                else:
                    table_data[title] = generate_link(query, api_resp_json.get(key))
            else:
                if "." in key:
                    keys = key.split(".")
                    data = api_resp_json[keys[0]]
                    if isinstance(data, list):
                        if key_type is dict:
                            l1 = []
                            for x in data:
                                l1.append(x.get(keys[1]))
                            l2 = []
                            for z in l1:
                                l2.append(
                                    generate_link(query, z.get("value"))
                                    if 0 < z.get("count") <= max_pivot
                                    else str(z.get("value"))
                                )
                            table_data[title] = ", ".join(l2)
                        else:
                            l1 = []
                            for x in data:
                                for y in x.get(keys[1]):
                                    l1.append(y)
                            l2 = []
                            for z in l1:
                                l2.append(
                                    generate_link(query, z.get("value"))
                                    if 0 < z.get("count") <= max_pivot
                                    else str(z.get("value"))
                                )
                            table_data[title] = ", ".join(l2)
                    elif isinstance(data, dict):
                        if key_type is dict:
                            k1 = data.get(keys[1])
                            if k1:
                                table_data[title] = (
                                    generate_link(query, k1.get("value"))
                                    if 0 < k1.get("count") <= max_pivot
                                    else k1.get("value")
                                )
                            else:
                                table_data[title] = ""
                        else:
                            l1 = []
                            k1 = data.get(keys[1])
                            if k1:
                                for x in k1:
                                    l1.append(x)
                                l2 = []
                                for z in l1:
                                    l2.append(
                                        generate_link(query, z.get("value"))
                                        if 0 < z.get("count") <= max_pivot
                                        else z.get("value")
                                    )
                                table_data[title] = ", ".join(l2)
                            else:
                                table_data[title] = ""

                else:
                    if key == "tags":
                        data = api_resp_json.get(key)
                        labels = [generate_link(query, z.get("label")) for z in data]
                        table_data[title] = ", ".join(labels)
                    else:
                        data = api_resp_json.get(key)
                        if data:
                            if key_type is list:
                                l1 = []
                                for x in data:
                                    l1.append(x)
                                l2 = []
                                for z in l1:
                                    l2.append(
                                        generate_link(query, z.get("value"))
                                        if 0 < z.get("count") <= max_pivot
                                        else z.get("value")
                                    )
                                table_data[title] = ", ".join(l2)
                            else:
                                table_data[title] = (
                                    generate_link(query, data.get("value"))
                                    if 0 < data.get("count") <= max_pivot
                                    else data.get("value")
                                )
                        else:
                            table_data[title] = ""

        table_formatted_data = []
        if table_data:
            table_formatted_data = [
                {"key": k, "value": v} for k, v in table_data.items()
            ]
        return table_formatted_data
    except Exception as ex:
        logging.error(str(ex))