diff --git a/src/bot/handlers.py b/src/bot/handlers.py index df30c36..04749a4 100644 --- a/src/bot/handlers.py +++ b/src/bot/handlers.py @@ -38,7 +38,11 @@ def _base_handler( def get_accounts(bot: telebot.TeleBot, engine: Engine, mes: Message) -> None: _base_handler(bot, mes) - accounts = database.get.get_accounts(engine, mes.from_user.id) + accounts = database.get.get_accounts( + engine, + mes.from_user.id, + to_sort=True, + ) if not accounts: return _send_tmp_message(bot, mes.chat.id, "У вас нет аккаунтов") diff --git a/src/database/get.py b/src/database/get.py index f18f028..99242ce 100644 --- a/src/database/get.py +++ b/src/database/get.py @@ -22,18 +22,21 @@ def get_master_pass( return (result.salt, result.password_hash) -def get_accounts(engine: Engine, user_id: int) -> list[str]: +def get_accounts( + engine: Engine, + user_id: int, + *, + to_sort: bool = False, +) -> list[str]: """Gets list of account names""" - statement = ( - sqlmodel.select(models.Account) - .where( - models.Account.user_id == user_id, - ) - .order_by(models.Account.name) + statement = sqlmodel.select(models.Account.name).where( + models.Account.user_id == user_id, ) + if to_sort: + statement = statement.order_by(models.Account.name) with sqlmodel.Session(engine) as session: - result = session.exec(statement) - return [account.name for account in result] + result = list(session.exec(statement)) + return result def get_all_accounts(