- Backend: N8N_AUTH_WEBHOOK из env (fallback), банки из BANK_IP, эндпоинт /api/v1/profile/dadata/address для подсказок адресов (FORMA_DADATA_*). - Config: bank_ip, bank_api_url, forma_dadata_api_key, forma_dadata_secret. - Frontend Profile: DatePicker для даты рождения, ИНН 12 цифр + ссылка на ФНС, валидация email, чекбокс «Совпадает с адресом регистрации», AutoComplete адресов через DaData, Select банков из /api/v1/banks/nspk (bankId/bankName). Подробности в CHANGELOG_PROFILE_VALIDATION.md.
2.3 KiB
2.3 KiB
Изменения: форма профиля, валидация, DaData, банки
Backend
auth_universal.py
- Чтение N8N_AUTH_WEBHOOK: fallback на
os.environ.get("N8N_AUTH_WEBHOOK"), если в config нет поляn8n_auth_webhook(чтобы webhook auth_miniapp вызывался при отсутствии config.py на хосте).
banks.py
- URL списка банков берётся из .env:
BANK_IP(в config —bank_ip), fallback наbank_api_urlи запасной URL. Прокси запроса к внешнему API для мини-аппа.
profile.py
- Новый эндпоинт
GET /api/v1/profile/dadata/address?query=...&count=10— подсказки адресов через DaData API (ключи FORMA_DADATA_API_KEY, FORMA_DADATA_SECRET в .env). Ответ:{ "suggestions": [ { "value", "unrestricted_value" } ] }.
config.py
- Добавлены поля:
bank_ip(BANK_IP),bank_api_url;forma_dadata_api_key,forma_dadata_secret(FORMA_DADATA_*).
Frontend (Profile.tsx)
- Дата рождения: календарь (DatePicker), формат DD.MM.YYYY, нельзя выбрать будущую дату.
- ИНН: строго 12 цифр, валидация и ввод только цифр; подсказка «Узнать свой ИНН вы можете здесь» со ссылкой на сервис ФНС (service.nalog.ru).
- Email: валидация формата (type: email).
- Адрес регистрации / Почтовый адрес: чекбокс «Совпадает с адресом регистрации» — при включении почтовый подставляется и блокируется; оба поля — AutoComplete с подсказками из DaData (запрос к /api/v1/profile/dadata/address).
- Банк для возмещения: выпадающий список (Select) с поиском, данные с /api/v1/banks/nspk (API из BANK_IP); учтён формат ответа с полями bankId, bankName (camelCase).
.env
- BANK_IP — URL API списка банков (например http://212.193.27.93/api/payouts/dictionaries/nspk-banks).
- FORMA_DADATA_API_KEY, FORMA_DADATA_SECRET — ключи DaData для подсказок адресов.