39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
"""application_credentials platform the Electric Kiwi integration."""
|
|
|
|
from homeassistant.components.application_credentials import (
|
|
AuthorizationServer,
|
|
ClientCredential,
|
|
)
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.helpers import config_entry_oauth2_flow
|
|
|
|
from .const import OAUTH2_AUTHORIZE, OAUTH2_TOKEN
|
|
from .oauth2 import ElectricKiwiLocalOAuth2Implementation
|
|
|
|
|
|
async def async_get_auth_implementation(
|
|
hass: HomeAssistant, auth_domain: str, credential: ClientCredential
|
|
) -> config_entry_oauth2_flow.AbstractOAuth2Implementation:
|
|
"""Return auth implementation."""
|
|
return ElectricKiwiLocalOAuth2Implementation(
|
|
hass,
|
|
auth_domain,
|
|
credential,
|
|
authorization_server=await async_get_authorization_server(hass),
|
|
)
|
|
|
|
|
|
async def async_get_authorization_server(hass: HomeAssistant) -> AuthorizationServer:
|
|
"""Return authorization server."""
|
|
return AuthorizationServer(
|
|
authorize_url=OAUTH2_AUTHORIZE,
|
|
token_url=OAUTH2_TOKEN,
|
|
)
|
|
|
|
|
|
async def async_get_description_placeholders(hass: HomeAssistant) -> dict[str, str]:
|
|
"""Return description placeholders for the credentials dialog."""
|
|
return {
|
|
"more_info_url": "https://www.home-assistant.io/integrations/electric_kiwi/"
|
|
}
|