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))