BOT_open_sesam/handlers/contact_handler.py

37 lines
1.3 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, normalize_phone
from config import config
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 = normalize_phone(msg.contact.phone_number)
if not authorize_user(user_id, phone):
await msg.answer("Доступ запрещен, номер не идентифицирован")
return
user_conf = config.get("users", {}).get(phone)
print(f"***user_conf для {phone}: {user_conf}***")
if not user_conf:
await msg.answer("Пользователь не опознан")
return
allowed_locks = user_conf.get("lock_id", [])
print(f"***allowed_locks = {allowed_locks}***")
reply_markup = get_locks_keyboard(allowed_locks)
await msg.answer(
"Номер подтвержден. Выберите дверь для открытия", reply_markup=reply_markup
)