Есть две функции, которые отличаются только callback параметром (который задан по умолчанию) и обращению к базе данных. Как можно сократить? aiogram

Таких функций будет 5. Как это можно сократить, оставляя только хэндлеры и используя вызов общей функции, в которую передать текущее состояние, call (по умолчанию) и функцию для работы с БД.

@dp.message_handler(state=UserState.name,content_types=types.ContentTypes.TEXT)
async def set_name(message: types.Message, state: FSMContext,call = "set_name"):
    keyboard_reg = types.InlineKeyboardMarkup()
    reg_b1 = types.InlineKeyboardButton(text="Да", callback_data="log in")#types.InlineKeyboardButton(text="Авторизоваться", callback_data="log in")
    reg_b2 = types.InlineKeyboardButton(text="Нет", callback_data=call)
    keyboard_reg.add(reg_b1,reg_b2)
    db.set_name(message.from_user.id, message.text)
    await state.finish()
    await message.answer(f'Вы указали {message.text}.Верно?',reply_markup=keyboard_reg) 

@dp.message_handler(state=UserState.pasport,content_types=types.ContentTypes.TEXT)
async def set_pasport(message: types.Message, state: FSMContext,call = "set_pasport"):
    keyboard_reg = types.InlineKeyboardMarkup()
    reg_b1 = types.InlineKeyboardButton(text="Да", callback_data="log in")#types.InlineKeyboardButton(text="Авторизоваться", callback_data="log in")
    reg_b2 = types.InlineKeyboardButton(text="Нет", callback_data=call)
    keyboard_reg.add(reg_b1,reg_b2)
    db.set_pasport(message.from_user.id, message.text)
    await state.finish()
    await message.answer(f'Вы указали {message.text}.Верно?',reply_markup=keyboard_reg)

Ответы (0 шт):