подгрузка данных для api из env

This commit is contained in:
2026-08-19 16:28:09 +03:00
parent bddc0967b3
commit c643a183d8
15 changed files with 891 additions and 86 deletions

View File

@@ -3945,18 +3945,44 @@ class HockeyDataService:
raise
schedule_warning = str(error)
payload = await self.sync_match_details(
tournament_external_id=tournament_external_id,
game_external_id=game_external_id,
language=language,
allow_create=True,
force_optional_shots=True,
)
details_warning = ""
try:
# Opening a match must not depend on every optional Stat2TV resource.
# Some schedule entries exist before/without a full match JSON card.
# Keep the operator UI usable and enrich the selected match when the
# card becomes available instead of failing the whole selection.
payload = await asyncio.wait_for(
self.sync_match_details(
tournament_external_id=tournament_external_id,
game_external_id=game_external_id,
language=language,
allow_create=True,
force_optional_shots=True,
),
timeout=12.0,
)
except Exception as error:
details_warning = str(error)
payload = self.game_details(game_external_id, language=language)
if payload is None:
raise
payload = dict(payload)
payload.update({
"ok": True,
"degraded": True,
"details_sync_failed": True,
"shots": {"available": False},
})
payload["schedule"] = schedule
if schedule_warning:
payload.setdefault("warnings", []).append(
f"Расписание не обновлено: {schedule_warning}"
)
if details_warning:
payload.setdefault("warnings", []).append(
f"Полная карточка матча пока недоступна: {details_warning}"
)
return payload
@staticmethod