in functions/source/bot_fulfillment/bot_fulfillment.py [0:0]
def get_table_response(column_names, content, param_formatter, response_type, result, rows, slots):
result = []
for row in rows:
item = create_record(row, column_names)
if 'Revenue' in item:
if item['Revenue'] > 100000:
item['Revenue'] = '$' + format(int(round(item['Revenue'] / 1000)), ',d') + 'K'
else:
item['Revenue'] = '$' + format(int(round(item['Revenue'])), ',d')
if 'Orders' in item:
item['Orders'] = format(int(round(item['Orders'])), ',d')
result.append(item)
if len(result) > 0:
total = round(sum(i[-1:][0] for i in rows))
if 'Revenue' in column_names:
if total > 100000:
if len(column_names) == 3:
result.append({column_names[0]: "Total", column_names[1]: "",
column_names[2]: '$' + format(int(round(total / 1000)), ',d') + 'K'})
elif len(column_names) == 2:
result.append(
{column_names[0]: "Total", column_names[1]: '$' + format(int(round(total / 1000)), ',d') + 'K'})
else:
if len(column_names) == 3:
result.append({column_names[0]: "Total", column_names[1]: "",
column_names[2]: '$' + format(int(round(total)), ',d')})
elif len(column_names) == 2:
result.append({column_names[0]: "Total", column_names[1]: '$' + format(int(round(total)), ',d')})
elif 'Orders' in column_names:
if len(column_names) == 3:
result.append(
{column_names[0]: "Total", column_names[1]: "", column_names[2]: format(int(round(total)), ',d')})
elif len(column_names) == 2:
result.append({column_names[0]: "Total", column_names[1]: format(int(round(total)), ',d')})
elif 'Sales Team Size' in column_names:
if len(column_names) == 3:
result.append(
{column_names[0]: "Total", column_names[1]: "", column_names[2]: format(int(round(total)), ',d')})
elif len(column_names) == 2:
result.append({column_names[0]: "Total", column_names[1]: format(int(round(total)), ',d')})
logger.debug("Result : " + str(result))
response = {
"sessionAttributes": {
"card": json.dumps({response_type: result})
},
"dialogAction": {
"type": "Close",
"fulfillmentState": "Fulfilled",
"message": {
"contentType": "PlainText",
"content": param_formatter.format(content, **slots)
}
}
}
return response