Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 13 additions & 14 deletions homeassistant/components/config/config_entries.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,17 @@ async def post(self, request, entry_id):
return self.json({"require_restart": not result})


def _prepare_config_flow_result_json(result, prepare_result_json):
"""Convert result to JSON."""
if result["type"] != data_entry_flow.RESULT_TYPE_CREATE_ENTRY:
return prepare_result_json(result)

data = result.copy()
data["result"] = entry_json(result["result"])
data.pop("data")
return data


class ConfigManagerFlowIndexView(FlowManagerIndexView):
"""View to create config flows."""

Expand All @@ -118,13 +129,7 @@ async def post(self, request):

def _prepare_result_json(self, result):
"""Convert result to JSON."""
if result["type"] != data_entry_flow.RESULT_TYPE_CREATE_ENTRY:
return super()._prepare_result_json(result)

data = result.copy()
data["result"] = data["result"].entry_id
data.pop("data")
return data
return _prepare_config_flow_result_json(result, super()._prepare_result_json)


class ConfigManagerFlowResourceView(FlowManagerResourceView):
Expand All @@ -151,13 +156,7 @@ async def post(self, request, flow_id):

def _prepare_result_json(self, result):
"""Convert result to JSON."""
if result["type"] != data_entry_flow.RESULT_TYPE_CREATE_ENTRY:
return super()._prepare_result_json(result)

data = result.copy()
data["result"] = entry_json(result["result"])
data.pop("data")
return data
return _prepare_config_flow_result_json(result, super()._prepare_result_json)


class ConfigManagerAvailableFlowView(HomeAssistantView):
Expand Down
12 changes: 11 additions & 1 deletion tests/components/config/test_config_entries.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,17 @@ async def async_step_user(self, user_input=None):
"title": "Test Entry",
"type": "create_entry",
"version": 1,
"result": entries[0].entry_id,
"result": {
"connection_class": "unknown",
"disabled_by": None,
"domain": "test",
"entry_id": entries[0].entry_id,
"source": "user",
"state": "loaded",
"supports_options": False,
"supports_unload": False,
"title": "Test Entry",
},
"description": None,
"description_placeholders": None,
}
Expand Down