def confirmation_processor(message: Message, **kwargs): chat_id = message.chat.id user_id = message.from_user.id language = userservice.get_user_language(user_id) def error(): error_msg = strings.get_string('order.confirmation_error', language) bot.send_message(chat_id, error_msg) bot.register_next_step_handler_by_chat_id(chat_id, confirmation_processor) if not message.text: error() return if strings.get_string('order.confirm', language) in message.text: total = kwargs.get('total') user = userservice.get_user_by_telegram_id(user_id) order = orderservice.confirm_order(user_id, user.full_user_name, total) order_success_message = strings.get_string('order.success', language) back_to_the_catalog(chat_id, language, order_success_message) notify_new_order(order, total) elif strings.get_string('order.cancel', language) in message.text: order_canceled_message = strings.get_string('order.canceled', language) if 'message_id' in kwargs: invoice_message_id = kwargs.get('message_id') bot.delete_message(chat_id, invoice_message_id) back_to_the_catalog(chat_id, language, order_canceled_message) else: error()
def confirmation_processor(message: Message, **kwargs): chat_id = message.chat.id user_id = message.from_user.id language = userservice.get_user_language(user_id) def error(): error_msg = strings.get_string('order.confirmation_error', language) bot.send_message(chat_id, error_msg) bot.register_next_step_handler_by_chat_id(chat_id, confirmation_processor) if not message.text: error() return if strings.get_string('order.confirm', language) in message.text: total = kwargs.get('total') user = userservice.get_user_by_telegram_id(user_id) order = orderservice.confirm_order(user_id, user.full_user_name, total) botutils.to_main_menu(chat_id, language, strings.get_string('notifications.wait')) current_user = userservice.get_user_by_id(user_id) count_orders = current_user.count_orders notify_new_order(order, total, count_orders) elif strings.get_string('order.cancel', language) in message.text: userservice.clear_user_cart(user_id) order_canceled_message = strings.get_string('order.canceled', language) if 'message_id' in kwargs: invoice_message_id = kwargs.get('message_id') bot.delete_message(chat_id, invoice_message_id) botutils.to_main_menu(chat_id, language, order_canceled_message) else: error()
def confirmation_processor(message: Message, **kwargs): chat_id = message.chat.id user_id = message.from_user.id language = userservice.get_user_language(user_id) def error(): error_msg = strings.get_string('order.confirmation_error', language) bot.send_message(chat_id, error_msg) bot.register_next_step_handler_by_chat_id(chat_id, confirmation_processor) if not message.text: error() return if strings.get_string('order.confirm', language) in message.text: first_name = message.from_user.first_name last_name = message.from_user.last_name total = kwargs.get('total') order = orderservice.confirm_order(user_id, first_name, last_name, total) order_success_message = strings.get_string('order.success', language) back_to_the_catalog(chat_id, language, order_success_message) notify_new_order(order, total) trelloservice.add_order_to_trello_board(order) elif strings.get_string('order.cancel', language) in message.text: order_canceled_message = strings.get_string('order.canceled', language) back_to_the_catalog(chat_id, language, order_canceled_message) else: error()
def pre_checkout_order_query_handler(query: PreCheckoutQuery): user_id = query.from_user.id chat_id = user_id user = userservice.get_user_by_telegram_id(user_id) language = user.language total = float(query.invoice_payload) order = orderservice.confirm_order(user_id, user.full_user_name, total) bot.answer_pre_checkout_query(query.id, ok=True) order_success_message = strings.get_string('order.success', language) bot.clear_step_handler_by_chat_id(chat_id) back_to_the_catalog(chat_id, language, order_success_message) notify_new_order(order, total)