in Solutions/DomainTools/Playbooks/CustomConnector/DomainTools_FunctionAppConnector/EnrichDomain/__init__.py [0:0]
def table_results(custom_tuple, api_resp_json, asim=False):
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] = (
data.get(keys[1]) if data.get(keys[1]) else ""
)
else:
table_data[title] = 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(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(str(z.get("value")))
table_data[title] = ", ".join(l2)
elif isinstance(data, dict):
if key_type is dict:
k1 = data.get(keys[1])
table_data[title] = k1.get("value") if k1 else ""
else:
l1 = []
k1 = data.get(keys[1])
if k1:
for x in k1:
l1.append(x)
l2 = []
for z in l1:
l2.append(str(z.get("value")))
table_data[title] = ", ".join(l2)
else:
table_data[title] = ""
else:
if key == "tags":
data = api_resp_json.get(key)
labels = [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(str(z.get("value")))
table_data[title] = ", ".join(l2)
else:
table_data[title] = data.get("value")
else:
table_data[title] = ""
if asim:
return table_data
else:
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))