mirror of
https://github.com/home-assistant/core.git
synced 2025-12-22 03:49:36 +00:00
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
"""Diagnostics platform for the Xbox integration."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from homeassistant.components.diagnostics import async_redact_data
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from .coordinator import XboxConfigEntry
|
|
|
|
TO_REDACT = {
|
|
"bio",
|
|
"display_name",
|
|
"display_pic_raw",
|
|
"gamertag",
|
|
"linked_accounts",
|
|
"location",
|
|
"modern_gamertag_suffix",
|
|
"modern_gamertag",
|
|
"real_name",
|
|
"unique_modern_gamertag",
|
|
"xuid",
|
|
}
|
|
|
|
|
|
async def async_get_config_entry_diagnostics(
|
|
hass: HomeAssistant, config_entry: XboxConfigEntry
|
|
) -> dict[str, Any]:
|
|
"""Return diagnostics for a config entry."""
|
|
|
|
coordinator = config_entry.runtime_data.status
|
|
consoles_coordinator = config_entry.runtime_data.consoles
|
|
|
|
presence = [
|
|
async_redact_data(person.model_dump(), TO_REDACT)
|
|
for person in coordinator.data.presence.values()
|
|
]
|
|
consoles_status = [
|
|
{
|
|
"status": console.status.model_dump(),
|
|
"app_details": (
|
|
console.app_details.model_dump() if console.app_details else None
|
|
),
|
|
}
|
|
for console in coordinator.data.consoles.values()
|
|
]
|
|
consoles_list = consoles_coordinator.data.model_dump()
|
|
title_info = [title.model_dump() for title in coordinator.data.title_info.values()]
|
|
|
|
return {
|
|
"consoles_status": consoles_status,
|
|
"consoles_list": consoles_list,
|
|
"presence": presence,
|
|
"title_info": title_info,
|
|
}
|