"""Provide oauth implementations for the Teslemetry integration.""" from typing import Any, override from homeassistant.core import HomeAssistant from homeassistant.helpers import config_entry_oauth2_flow from .const import AUTHORIZE_URL, TOKEN_URL class TeslemetryImplementation( config_entry_oauth2_flow.LocalOAuth2ImplementationWithPkce ): """Teslemetry OAuth2 implementation.""" def __init__(self, hass: HomeAssistant, domain: str, client_id: str) -> None: """Initialize OAuth2 implementation.""" super().__init__( hass, domain, client_id, AUTHORIZE_URL, TOKEN_URL, ) @property @override def name(self) -> str: """Name of the implementation.""" return "Teslemetry OAuth2" @property @override def extra_authorize_data(self) -> dict[str, Any]: """Extra data that needs to be appended to the authorize url.""" data: dict = { "name": self.hass.config.location_name, } data.update(super().extra_authorize_data) return data @property @override def extra_token_resolve_data(self) -> dict[str, Any]: """Extra data that needs to be appended to the token resolve request.""" data: dict = { "name": self.hass.config.location_name, } data.update(super().extra_token_resolve_data) return data