from aiogram import Router, F from aiogram.types import Message, CallbackQuery from aiogram.fsm.context import FSMContext from app.database import requests as rq from app.keyboards import user_keyboards as kb from app.database.requests import check_user_registered, update_user_data, check_login_unique, own_login_check from app.states import Other router = Router() @router.message(F.text == "Посмотреть сохраненные сведения о себе") async def get_info(message: Message): registration_status = await check_user_registered(message.from_user.id) if registration_status: user_info = await rq.get_user_registration_info(message.from_user.id) await message.answer(user_info, reply_markup=kb.user_infocheck_back) elif not registration_status: await message.answer("Вы не зарегистрированы. Пожалуйста, зарегистрируйтесь, чтобы увидеть сохраненные сведения о себе.", reply_markup=kb.user_back) return @router.callback_query(F.data == 'data_correct') async def correction_info(callback: CallbackQuery, state: FSMContext): await state.set_state(Other.user_data_check) await callback.message.answer('Вы правда хотите изменить регистрационные данные?', reply_markup=kb.yes_no_keyboard) @router.message(Other.user_data_check) async def register_check(message: Message, state: FSMContext): if message.text == 'Да': await state.set_state(Other.user_data_correct) await message.answer('Упс :( Что Вы хотите исправить?', reply_markup=kb.register_correct_keyboard) if message.text == 'Нет': await message.answer('Хорошо! Если что-то изменится, Вы всегда можете обновить свои данные!', reply_markup=kb.user_back_wo_reg) await state.clear() @router.message(Other.user_data_correct) async def correction_info(message: Message, state: FSMContext): await state.update_data(correction=message.text) print("check") await state.set_state(Other.user_data_finish) await message.answer('Какие данные Вы хотите внести?', reply_markup=kb.yes_no_keyboard) @router.message(Other.user_data_finish) async def correction_info_set(message: Message, state: FSMContext): data = await state.get_data() if data['correction'] == 'Логин': if not await check_login_unique(message.text) and not own_login_check(message.from_user.id, message.text): await message.answer('Этот логин уже занят. Пожалуйста, выберите другой.') return await update_user_data(message.from_user.id, data['correction'], message.text) await state.clear() await message.answer('Изменения внесены!', reply_markup=kb.user_back_wo_reg)