Skip to content

Commit

Permalink
перенос сервисов в отдельный файл
Browse files Browse the repository at this point in the history
  • Loading branch information
malinovsku committed Aug 19, 2024
1 parent 359bbce commit f344bfe
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 25 deletions.
33 changes: 8 additions & 25 deletions custom_components/keenetic_api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from typing import Any
from datetime import timedelta

from homeassistant.helpers.update_coordinator import UpdateFailed
from homeassistant.const import (
CONF_HOST,
CONF_PASSWORD,
Expand All @@ -19,17 +18,12 @@
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.config_entries import ConfigEntry
from homeassistant.helpers import aiohttp_client, device_registry as dr
from homeassistant.core import (
HomeAssistant,
ServiceCall,
ServiceResponse,
SupportsResponse,
)
from homeassistant.exceptions import HomeAssistantError, ConfigEntryNotReady
from homeassistant.helpers.json import json_loads
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import aiohttp_client
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers import device_registry as dr

from .services import async_setup_services
from .coordinator import (
KeeneticRouterCoordinator,
KeeneticRouterFirmwareCoordinator,
Expand Down Expand Up @@ -93,27 +87,16 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
COORD_RC_INTERFACE: coordinator_rc_interface
}

await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
entry.async_on_unload(entry.add_update_listener(async_reload_entry))


async def request_api(service: ServiceCall):
data_json = service.data.get("data_json", [])
response = await hass.data[DOMAIN][service.data["entry_id"]][CROUTER].api(service.data["method"], service.data["endpoint"], data_json)
_LOGGER.debug(f'Services request_api response - {response}')
return {"response": response}
hass.services.async_register(DOMAIN, "request_api", request_api, supports_response=SupportsResponse.OPTIONAL)

async def backup_router(service: ServiceCall):
response = await hass.data[DOMAIN][service.data["entry_id"]][CROUTER].async_backup(service.data["folder"], service.data["type"])
return True
hass.services.async_register(DOMAIN, "backup_router", backup_router)
await async_setup_services(hass)

try:
remove_entities_or_devices(hass, entry)
except Exception as err:
_LOGGER.error(f'remove_entities_or_devices - {err}')

await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
entry.async_on_unload(entry.add_update_listener(async_reload_entry))

return True


Expand Down
29 changes: 29 additions & 0 deletions custom_components/keenetic_api/services.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import logging

from homeassistant.core import (
HomeAssistant,
ServiceCall,
ServiceResponse,
SupportsResponse,
)

from .const import (
DOMAIN,
CROUTER,
)

_LOGGER = logging.getLogger(__name__)

async def async_setup_services(hass: HomeAssistant) -> None:

async def request_api(service: ServiceCall):
data_json = service.data.get("data_json", [])
response = await hass.data[DOMAIN][service.data["entry_id"]][CROUTER].api(service.data["method"], service.data["endpoint"], data_json)
_LOGGER.debug(f'Services request_api response - {response}')
return {"response": response}
hass.services.async_register(DOMAIN, "request_api", request_api, supports_response=SupportsResponse.OPTIONAL)

async def backup_router(service: ServiceCall):
response = await hass.data[DOMAIN][service.data["entry_id"]][CROUTER].async_backup(service.data["folder"], service.data["type"])
return True
hass.services.async_register(DOMAIN, "backup_router", backup_router)

0 comments on commit f344bfe

Please sign in to comment.