def __show_ongoing_order_suggestions(user: User, intent_result, session_id):
    response = intent_result.fulfillment_text

    return send_message_with_options(user,
                                     intent_result.intent.display_name,
                                     session_id,
                                     response,
                                     *ONGOING_ORDER_SUGGESTIONS,
                                     row_width=1)
def __show_main_suggestions(user: User, intent_result, session_id):
    response = intent_result.fulfillment_text

    return send_message_with_options(user,
                                     intent_result.intent.display_name,
                                     session_id,
                                     response,
                                     *MAIN_SUGGESTIONS,
                                     row_width=1)
def __show_menu_options(user: User, intent_result, session_id):
    response = intent_result.fulfillment_text
    if is_not_blank(response):
        return send_message_with_options(user,
                                         intent_result.intent.display_name,
                                         session_id, response,
                                         *list(MENU_CODES_TO_OPTIONS.values()))
    else:
        return send_message(user, intent_result.intent.display_name,
                            session_id, DEFAULT_ERROR_MESSAGE)
def __display_main_greeting(user: User, intent_result, session_id):
    response = intent_result.fulfillment_text.format(
        default_if_blank(user.name, 'Customer'))

    return send_message_with_options(user,
                                     intent_result.intent.display_name,
                                     session_id,
                                     response,
                                     *MAIN_SUGGESTIONS,
                                     row_width=1)
def __update_order(user: User, intent_result, session_id):
    order_items = get_items_from_response(intent_result)

    if len(order_items) > 0:
        response = intent_result.fulfillment_text
        add_to_order(user, session_id, order_items)
        return send_message_with_options(user,
                                         intent_result.intent.display_name,
                                         session_id, response, "I'm done!")
    else:
        response = "Sorry, I wasn't able to detect your order. Could you repeat yourself?"
        return send_message(user, intent_result.intent.display_name,
                            session_id, response)
def __show_orders(user: User, intent_result, session_id):
    orders = order_api.list_orders(user)

    if len(orders) > 0:
        response = "Here are your current orders:\n"
        for x in range(1, len(orders) + 1):
            response += "{}. {}\n<Placed @ {}>\n\n"\
                .format(x, orders[x - 1]['order_description'], orders[x - 1]['timestamp'])
        response += "\nHow else can I help you?"

        return send_message_with_options(user,
                                         intent_result.intent.display_name,
                                         session_id,
                                         response,
                                         *MAIN_SUGGESTIONS,
                                         row_width=1)
    else:
        response = "You have no orders yet. Let me know if you wanna order something!"
        return send_message(user, intent_result.intent.display_name,
                            session_id, response)
def __confirm_order(user: User, intent_result, session_id):
    order_items = get_current_order(user, session_id)

    if len(order_items) > 0:
        response = "Here are the items in your order:\n"
        for name, count in order_items.items():
            response += "- {}x {}\n".format(
                count, default_if_blank(MENU_CODES_TO_OPTIONS[name], 'N.A.'))
        response += "\nSubmit?"

        return send_message_with_options(user,
                                         intent_result.intent.display_name,
                                         session_id, response,
                                         "Yes, submit my order!",
                                         "Nah, cancel it")
    else:
        detect_intent_via_event(session_id, 'NINJA_CAFE_MAIN_EVENT')

        response = "Oops, you don't have any items in your order. Let me know how else I can help you!"

        return send_message(user, intent_result.intent.display_name,
                            session_id, response)