in chat-client/main.py [0:0]
def submitDialog(event):
chatUser = event["chat"]["user"]
products = []
categories = []
all_products = False
all_blogs = False
space_id = event["chat"]["buttonClickedPayload"]["space"]["name"]
if "formInputs" in event["commonEventObject"]:
if "contactType" in event["commonEventObject"]["formInputs"]:
products = event["commonEventObject"]["formInputs"]["contactType"][
"stringInputs"
]["value"]
products, all_products = handle_templatized_notes_inputs(products)
if "blogType" in event["commonEventObject"]["formInputs"]:
categories = event["commonEventObject"]["formInputs"]["blogType"][
"stringInputs"
]["value"]
categories, all_blogs = handle_templatized_blogs_inputs(categories)
with futures.ThreadPoolExecutor() as executor:
record_space_subscription_futures = [
executor.submit(record_space_subscription, space_id, product)
for product in products
]
record_space_blogs_futures = [
executor.submit(record_space_blogs, space_id, category)
for category in categories
]
futures.wait(record_space_subscription_futures + record_space_blogs_futures)
record_product_subscription(space_id, products, categories)
response = ""
if products: # More concise way to check if list is not empty
product_message = f"products: {', '.join(products)}"
else:
product_message = "no products" # Or a more appropriate message
if all_products:
product_message = "All Products"
if categories:
category_message = f"and categories: {', '.join(categories)}"
else:
category_message = "and no categories"
if all_blogs:
category_message = "and All Categories"
if products or categories: # Check if either products or categories are selected
response = f"😄🎉 Your request has been successfully submitted!\n\nThis space is now subscribed to {product_message} {category_message}."
else:
response = "😄🎉 Your request has been successfully submitted!\n\nThis space is now unsubscribed from any products or categories."
return {
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": {"privateMessageViewer": chatUser, "text": response}
}
}
}
}