BOT_open_sesam/handlers/contact_handler.py

31 lines
1.1 KiB
Python

from aiogram import Dispatcher, F
from aiogram.types import Message
from keyboard import get_locks_keyboard, get_contact_keyboard
from auth import authorize_user, AUTHORIZED_USERS
def register_contact_handler(dp: Dispatcher):
@dp.message(F.contact)
async def contact_handler(msg: Message):
user_id = msg.from_user.id
if msg.contact is None:
await msg.answer("Ошибка: номер телефона не получен")
return
phone = msg.contact.phone_number
if not await authorize_user(user_id, phone):
await msg.answer("Доступ запрещён, номер не идентифицирован")
return
user_data = AUTHORIZED_USERS.get(user_id)
if not user_data:
await msg.answer("Ошибка авторизации.")
return
allowed_zones = user_data["zones"]
reply_markup = await get_locks_keyboard(allowed_zones)
await msg.answer(
"Номер подтверждён. Выберите дверь для открытия", reply_markup=reply_markup
)