File size: 2,966 Bytes
339f372
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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)