Skip to content

Commit a6306bf

Browse files
committed
Add methods for retrieving reference data in OverkizClient
1 parent f2160c5 commit a6306bf

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

pyoverkiz/client.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,60 @@ async def get_setup_option_parameter(
651651

652652
return None
653653

654+
@retry_on_auth_error
655+
async def get_reference_controllable(self, controllable_name: str) -> JSON:
656+
"""Get a controllable definition."""
657+
return await self.__get(
658+
f"reference/controllable/{urllib.parse.quote_plus(controllable_name)}"
659+
)
660+
661+
@retry_on_auth_error
662+
async def get_reference_controllable_types(self) -> JSON:
663+
"""Get details about all supported controllable types."""
664+
return await self.__get("reference/controllableTypes")
665+
666+
@retry_on_auth_error
667+
async def search_reference_devices_model(self, payload: JSON) -> JSON:
668+
"""Search reference device models using a POST payload."""
669+
return await self.__post("reference/devices/search", payload)
670+
671+
@retry_on_auth_error
672+
async def get_reference_protocol_types(self) -> JSON:
673+
"""Get details about supported protocol types on that server instance."""
674+
return await self.__get("reference/protocolTypes")
675+
676+
@retry_on_auth_error
677+
async def get_reference_timezones(self) -> JSON:
678+
"""Get timezones list."""
679+
return await self.__get("reference/timezones")
680+
681+
@retry_on_auth_error
682+
async def get_reference_ui_classes(self) -> JSON:
683+
"""Get a list of all defined UI classes."""
684+
return await self.__get("reference/ui/classes")
685+
686+
@retry_on_auth_error
687+
async def get_reference_ui_classifiers(self) -> JSON:
688+
"""Get a list of all defined UI classifiers."""
689+
return await self.__get("reference/ui/classifiers")
690+
691+
@retry_on_auth_error
692+
async def get_reference_ui_profile(self, profile_name: str) -> JSON:
693+
"""Get a description of a given UI profile (or form-factor variant)."""
694+
return await self.__get(
695+
f"reference/ui/profile/{urllib.parse.quote_plus(profile_name)}"
696+
)
697+
698+
@retry_on_auth_error
699+
async def get_reference_ui_profile_names(self) -> JSON:
700+
"""Get a list of all defined UI profiles (and form-factor variants)."""
701+
return await self.__get("reference/ui/profileNames")
702+
703+
@retry_on_auth_error
704+
async def get_reference_ui_widgets(self) -> JSON:
705+
"""Get a list of all defined UI widgets."""
706+
return await self.__get("reference/ui/widgets")
707+
654708
async def __get(self, path: str) -> Any:
655709
"""Make a GET request to the OverKiz API."""
656710
await self._refresh_token_if_expired()

0 commit comments

Comments
 (0)