chore: clean-up

This commit is contained in:
Vlad Stan
2026-07-01 16:57:21 +03:00
parent bc6a1adefd
commit 8114beaeec
4 changed files with 3 additions and 75 deletions
-14
View File
@@ -25,8 +25,6 @@ from .models import (
StorageDeleteResponse,
StorageGetRequest,
StorageGetResponse,
StorageListRequest,
StorageListResponse,
StoragePaginatedRequest,
StoragePaginatedResponse,
StorageSetRequest,
@@ -152,18 +150,6 @@ class ExtensionAPI:
async def storage_set(self, request: StorageSetRequest) -> StorageSetResponse:
self._raise_unwired_runtime("storage_set")
@extension_api_method(
method_id="storage.list",
namespace="storage",
name="List storage rows",
host_name="storage_list",
sdk_name="list",
description="List rows from an extension storage table.",
required_permission="ext.storage.read_write",
)
async def storage_list(self, request: StorageListRequest) -> StorageListResponse:
self._raise_unwired_runtime("storage_list")
@extension_api_method(
method_id="storage.get_paginated",
namespace="storage",
+3 -18
View File
@@ -33,24 +33,6 @@ class StorageSetResponse(BaseModel):
ok: bool = True
class StorageListRequest(BaseModel):
table: str = Field(..., min_length=1, max_length=128)
filters: dict[str, Any] = Field(default_factory=dict)
limit: int = Field(100, ge=1, le=1000)
offset: int = Field(0, ge=0)
@root_validator(pre=True)
def parse_filters_json(cls, values: dict[str, Any]) -> dict[str, Any]:
filters_json = values.get("filters_json")
if filters_json is not None and "filters" not in values:
values["filters"] = json.loads(filters_json)
return values
class StorageListResponse(BaseModel):
rows_json: str = "[]"
class StoragePaginatedRequest(BaseModel):
table: str = Field(..., min_length=1, max_length=128)
filters: dict[str, Any] = Field(default_factory=dict)
@@ -70,6 +52,9 @@ class StoragePaginatedRequest(BaseModel):
search_fields_json = values.get("search_fields_json")
if search_fields_json is not None and "search_fields" not in values:
values["search_fields"] = json.loads(search_fields_json)
if values.get("sort_by") == "":
values["sort_by"] = None
return values
-14
View File
@@ -13,8 +13,6 @@ from .models import (
StorageDeleteResponse,
StorageGetRequest,
StorageGetResponse,
StorageListRequest,
StorageListResponse,
StoragePaginatedRequest,
StoragePaginatedResponse,
StorageSetRequest,
@@ -27,7 +25,6 @@ from .storage import (
storage_delete_row,
storage_get_paginated_rows,
storage_get_row,
storage_list_rows,
storage_set_row,
)
@@ -62,17 +59,6 @@ class InMemoryExtensionAPI(ExtensionAPI):
await storage_set_row(self.extension_id, request.table, request.data)
return StorageSetResponse()
async def storage_list(self, request: StorageListRequest) -> StorageListResponse:
self.require_permission("ext.storage.read_write")
rows = await storage_list_rows(
self.extension_id,
request.table,
request.filters,
limit=request.limit,
offset=request.offset,
)
return StorageListResponse(rows_json=json.dumps(rows))
async def storage_get_paginated(
self, request: StoragePaginatedRequest
) -> StoragePaginatedResponse:
-29
View File
@@ -57,35 +57,6 @@ async def storage_set_row(
await conn.execute(query, clean_data)
async def storage_list_rows(
ext_id: str,
table: str,
filters: dict[str, Any],
*,
limit: int,
offset: int,
) -> list[dict[str, Any]]:
table_schema = _load_table_schema(ext_id, table)
clean_filters = _filters_to_db(table_schema, filters)
where_sql = ""
if clean_filters:
clauses = [f"{field} = :filter_{field}" for field in clean_filters]
where_sql = "WHERE " + " AND ".join(clauses)
values = {f"filter_{field}": value for field, value in clean_filters.items()}
values.update({"limit": min(limit, 1000), "offset": offset})
query = f"""
SELECT * FROM {_table_ref_for_schema(ext_id, table)}
{where_sql}
LIMIT :limit
OFFSET :offset
""" # noqa: S608
async with Database(f"ext_{ext_id}").connect() as conn:
rows = await conn.fetchall(query, values)
return [_row_from_db(table_schema, row) for row in rows]
async def storage_get_paginated_rows(
ext_id: str,
table: str,