Make service response optional for Habitica integration (#171818)

This commit is contained in:
Manu
2026-05-26 21:37:55 +02:00
committed by GitHub
parent b312bd010b
commit 6a18e05bda
+16 -12
View File
@@ -303,7 +303,7 @@ async def _cast_skill(call: ServiceCall) -> ServiceResponse:
) from e
else:
await coordinator.async_request_refresh()
return asdict(response.data)
return asdict(response.data) if call.return_response is True else None
async def _manage_quests(call: ServiceCall) -> ServiceResponse:
@@ -353,7 +353,7 @@ async def _manage_quests(call: ServiceCall) -> ServiceResponse:
translation_placeholders={"reason": str(e)},
) from e
else:
return asdict(response.data)
return asdict(response.data) if call.return_response is True else None
async def _score_task(call: ServiceCall) -> ServiceResponse:
@@ -418,7 +418,7 @@ async def _score_task(call: ServiceCall) -> ServiceResponse:
) from e
else:
await coordinator.async_request_refresh()
return asdict(response.data)
return asdict(response.data) if call.return_response is True else None
async def _transformation(call: ServiceCall) -> ServiceResponse:
@@ -503,7 +503,7 @@ async def _transformation(call: ServiceCall) -> ServiceResponse:
translation_placeholders={"reason": str(e)},
) from e
else:
return asdict(response.data)
return asdict(response.data) if call.return_response is True else None
async def _get_tasks(call: ServiceCall) -> ServiceResponse:
@@ -839,7 +839,11 @@ async def _create_or_update_task(call: ServiceCall) -> ServiceResponse: # noqa:
translation_placeholders={"reason": str(e)},
) from e
else:
return response.data.to_dict(omit_none=True)
return (
response.data.to_dict(omit_none=True)
if call.return_response is True
else None
)
@callback
@@ -859,7 +863,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
service_name,
_manage_quests,
schema=SERVICE_MANAGE_QUEST_SCHEMA,
supports_response=SupportsResponse.ONLY,
supports_response=SupportsResponse.OPTIONAL,
)
for service_name in (
@@ -873,7 +877,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
service_name,
_create_or_update_task,
schema=SERVICE_UPDATE_TASK_SCHEMA,
supports_response=SupportsResponse.ONLY,
supports_response=SupportsResponse.OPTIONAL,
)
for service_name in (
SERVICE_CREATE_DAILY,
@@ -886,7 +890,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
service_name,
_create_or_update_task,
schema=SERVICE_CREATE_TASK_SCHEMA,
supports_response=SupportsResponse.ONLY,
supports_response=SupportsResponse.OPTIONAL,
)
hass.services.async_register(
@@ -894,7 +898,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
SERVICE_CAST_SKILL,
_cast_skill,
schema=SERVICE_CAST_SKILL_SCHEMA,
supports_response=SupportsResponse.ONLY,
supports_response=SupportsResponse.OPTIONAL,
)
hass.services.async_register(
@@ -902,14 +906,14 @@ def async_setup_services(hass: HomeAssistant) -> None:
SERVICE_SCORE_HABIT,
_score_task,
schema=SERVICE_SCORE_TASK_SCHEMA,
supports_response=SupportsResponse.ONLY,
supports_response=SupportsResponse.OPTIONAL,
)
hass.services.async_register(
DOMAIN,
SERVICE_SCORE_REWARD,
_score_task,
schema=SERVICE_SCORE_TASK_SCHEMA,
supports_response=SupportsResponse.ONLY,
supports_response=SupportsResponse.OPTIONAL,
)
hass.services.async_register(
@@ -917,7 +921,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
SERVICE_TRANSFORMATION,
_transformation,
schema=SERVICE_TRANSFORMATION_SCHEMA,
supports_response=SupportsResponse.ONLY,
supports_response=SupportsResponse.OPTIONAL,
)
hass.services.async_register(
DOMAIN,