async def repeat_ticket( callback_query: types.CallbackQuery, state: FSMContext, ) -> None: """ Duplicate ticket """ callback_id: str = callback_query.id user_id: int = callback_query.from_user.id ticket_id: int = int(callback_query.data.split(":")[1]) user_session = UserSession(user_id) await user_session.create(state) ticket: Dict = user_session.get_one_ticket(ticket_id) title: str = ticket.get("name", str(None)) description: str = ticket.get("content", str(None)) priority_int: int = ticket.get("priority", str(None)) try: ticket_id = user_session.create_ticket( title=title, description=description, urgency=priority_int ) except StupidError as err: message_text: str = f"Произошла неизвестная науке ошибка {err}" else: message_text = f'Заявка "{title}" принята. Номер заявки - {ticket_id}' logging.info(message_text) await bot.send_message(user_id, message_text, reply_markup=select_command) ddd = await bot.answer_callback_query(callback_id) logging.info("callback done %s", ddd)
async def process_to_select_priority( user_id: int, priority: str, state: FSMContext ) -> None: """Create new ticket with provided title, description and priority Args: user_id (int): telegram user id that issued command description (str): title for new ticket """ user_session = UserSession(user_id) await user_session.create(state) title = await user_session.pop_field(key="title") description = await user_session.pop_field(key="description") logging.info("title = _%s_ description = _%s_", title, description) if len(title) == 0 or len(description) == 0: logging.warning( "process_to_select_priority(): title = _%s_ description = _%s_", title, description, ) await Form.logged_in.set() await bot.send_message( user_id, "Заявка не принята. Програма выдала ошибку", reply_markup=select_command, ) return try: priority_int: int = urgency_to_int(priority) except KeyError: logging.warning( "process_to_select_priority(): title = _%s_ description = _%s_ priority = _%s", title, description, priority, ) await Form.logged_in.set() await bot.send_message( user_id, "Заявка не принята. Неправильно выбран приоритет", reply_markup=select_command, ) return try: ticket_id = user_session.create_ticket( title=title, description=description, urgency=priority_int ) except StupidError as err: message_text: str = f"Произошла неизвестная науке ошибка {err}" else: # message_text = f'Заявка "{title}" принята. Номер заявки - [{ticket_id}]({GLPI_TICKET_URL}{ticket_id})' message_text = f'Заявка "{title}" принята. Номер заявки - <a href="{GLPI_TICKET_URL}{ticket_id}">{ticket_id}</a>' logging.info(message_text) await bot.send_message(user_id, message_text, reply_markup=select_command) await Form.logged_in.set()