Remove create_create from StorageCollectionWebsocket.async_setup (#119489)

This commit is contained in:
Erik Montnemery 2024-06-24 15:41:08 +02:00 committed by GitHub
parent 1a27cea6f2
commit 0d1b050520
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 34 additions and 36 deletions

View File

@ -1605,14 +1605,9 @@ class PipelineStorageCollectionWebsocket(
"""Class to expose storage collection management over websocket."""
@callback
def async_setup(
self,
hass: HomeAssistant,
*,
create_create: bool = True,
) -> None:
def async_setup(self, hass: HomeAssistant) -> None:
"""Set up the websocket commands."""
super().async_setup(hass, create_create=create_create)
super().async_setup(hass)
websocket_api.async_register_command(
hass,

View File

@ -14,6 +14,7 @@ from aiohttp.web_request import FileField
from PIL import Image, ImageOps, UnidentifiedImageError
import voluptuous as vol
from homeassistant.components import websocket_api
from homeassistant.components.http import KEY_HASS, HomeAssistantView
from homeassistant.components.http.static import CACHE_HEADERS
from homeassistant.const import CONF_ID
@ -47,13 +48,13 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
image_dir = pathlib.Path(hass.config.path("image"))
hass.data[DOMAIN] = storage_collection = ImageStorageCollection(hass, image_dir)
await storage_collection.async_load()
collection.DictStorageCollectionWebsocket(
ImageUploadStorageCollectionWebsocket(
storage_collection,
"image",
"image",
CREATE_FIELDS,
UPDATE_FIELDS,
).async_setup(hass, create_create=False)
).async_setup(hass)
hass.http.register_view(ImageUploadView)
hass.http.register_view(ImageServeView(image_dir, storage_collection))
@ -151,6 +152,19 @@ class ImageStorageCollection(collection.DictStorageCollection):
await self.hass.async_add_executor_job(shutil.rmtree, self.image_dir / item_id)
class ImageUploadStorageCollectionWebsocket(collection.DictStorageCollectionWebsocket):
"""Class to expose storage collection management over websocket."""
async def ws_create_item(
self, hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict
) -> None:
"""Create an item.
Not supported, images are uploaded via the ImageUploadView.
"""
raise NotImplementedError
class ImageUploadView(HomeAssistantView):
"""View to upload images."""

View File

@ -133,14 +133,9 @@ class ResourceStorageCollectionWebsocket(collection.DictStorageCollectionWebsock
"""Class to expose storage collection management over websocket."""
@callback
def async_setup(
self,
hass: HomeAssistant,
*,
create_create: bool = True,
) -> None:
def async_setup(self, hass: HomeAssistant) -> None:
"""Set up the websocket commands."""
super().async_setup(hass, create_create=create_create)
super().async_setup(hass)
# Register lovelace/resources for backwards compatibility, remove in
# Home Assistant Core 2025.1

View File

@ -536,12 +536,7 @@ class StorageCollectionWebsocket[_StorageCollectionT: StorageCollection]:
return f"{self.model_name}_id"
@callback
def async_setup(
self,
hass: HomeAssistant,
*,
create_create: bool = True,
) -> None:
def async_setup(self, hass: HomeAssistant) -> None:
"""Set up the websocket commands."""
websocket_api.async_register_command(
hass,
@ -552,20 +547,19 @@ class StorageCollectionWebsocket[_StorageCollectionT: StorageCollection]:
),
)
if create_create:
websocket_api.async_register_command(
hass,
f"{self.api_prefix}/create",
websocket_api.require_admin(
websocket_api.async_response(self.ws_create_item)
),
websocket_api.BASE_COMMAND_MESSAGE_SCHEMA.extend(
{
**self.create_schema,
vol.Required("type"): f"{self.api_prefix}/create",
}
),
)
websocket_api.async_register_command(
hass,
f"{self.api_prefix}/create",
websocket_api.require_admin(
websocket_api.async_response(self.ws_create_item)
),
websocket_api.BASE_COMMAND_MESSAGE_SCHEMA.extend(
{
**self.create_schema,
vol.Required("type"): f"{self.api_prefix}/create",
}
),
)
websocket_api.async_register_command(
hass,