From d29b4465ad6165098914b0b5acc6f0641e1b1988 Mon Sep 17 00:00:00 2001 From: algizn97 Date: Tue, 26 Aug 2025 19:10:43 +0500 Subject: [PATCH] added documentation --- app/services/Bybit/functions/Add_Bybit_API.py | 46 ++++++++++++------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/app/services/Bybit/functions/Add_Bybit_API.py b/app/services/Bybit/functions/Add_Bybit_API.py index 5b4f614..2ee471e 100644 --- a/app/services/Bybit/functions/Add_Bybit_API.py +++ b/app/services/Bybit/functions/Add_Bybit_API.py @@ -7,8 +7,7 @@ import app.telegram.Keyboards.reply_keyboards as reply_markup import app.telegram.database.requests as rq from aiogram.types import Message, CallbackQuery -# FSM - Механизм состояния -from aiogram.fsm.state import State, StatesGroup +from app.states.States import state_reg_bybit_api from aiogram.fsm.context import FSMContext logging.config.dictConfig(LOGGING_CONFIG) @@ -16,12 +15,13 @@ logger = logging.getLogger("add_bybit_api") router_register_bybit_api = Router() -class state_reg_bybit_api(StatesGroup): - api_key = State() - secret_key = State() @router_register_bybit_api.callback_query(F.data == 'clb_new_user_connect_bybit_api_message') -async def info_for_bybit_api_message(callback: CallbackQuery): +async def info_for_bybit_api_message(callback: CallbackQuery) -> None: + """ + Отвечает пользователю подробной инструкцией по подключению аккаунта Bybit. + Показывает как создать API ключ и передать его чат-боту. + """ text = '''Подключение Bybit аккаунта 1. Зарегистрируйтесь или войдите в свой аккаунт на Bybit (https://www.bybit.com/). @@ -43,36 +43,50 @@ async def info_for_bybit_api_message(callback: CallbackQuery): await callback.answer() + @router_register_bybit_api.callback_query(F.data == 'clb_new_user_connect_bybit_api') -async def add_api_key_message(callback: CallbackQuery, state: FSMContext): +async def add_api_key_message(callback: CallbackQuery, state: FSMContext) -> None: + """ + Инициирует процесс добавления API ключа. + Переводит пользователя в состояние ожидания ввода API Key. + """ await state.set_state(state_reg_bybit_api.api_key) text = 'Отправьте KEY_API ниже: ' await callback.message.answer(text=text) + @router_register_bybit_api.message(state_reg_bybit_api.api_key) -async def add_api_key_and_message_for_secret_key(message: Message, state: FSMContext): - await state.update_data(api_key = message.text) - +async def add_api_key_and_message_for_secret_key(message: Message, state: FSMContext) -> None: + """ + Сохраняет API Key во временное состояние FSM, + затем запрашивает у пользователя ввод Secret Key. + """ + await state.update_data(api_key=message.text) + text = 'Отправьте SECRET_KEY ниже' await message.answer(text=text) await state.set_state(state_reg_bybit_api.secret_key) + @router_register_bybit_api.message(state_reg_bybit_api.secret_key) -async def add_secret_key(message: Message, state: FSMContext): - await state.update_data(secret_key = message.text) +async def add_secret_key(message: Message, state: FSMContext) -> None: + """ + Сохраняет Secret Key и финализирует регистрацию, + обновляет базу данных, устанавливает символ пользователя и очищает состояние. + """ + await state.update_data(secret_key=message.text) data = await state.get_data() await rq.update_api_key(message.from_user.id, data['api_key']) await rq.update_secret_key(message.from_user.id, data['secret_key']) await rq.set_new_user_symbol(message.from_user.id) - + await state.clear() - await message.answer('Данные добавлены, нажмите на профиль и начните торговлю!', reply_markup=reply_markup.base_buttons_markup) - - \ No newline at end of file + await message.answer('Данные добавлены, нажмите на профиль и начните торговлю!', + reply_markup=reply_markup.base_buttons_markup)