From 8114beaeeca399517289c6bda542171a64865ce5 Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Fri, 26 Jun 2026 14:23:39 +0300 Subject: [PATCH] chore: clean-up --- lnbits/core/extensions/api.py | 14 -------------- lnbits/core/extensions/models.py | 21 +++------------------ lnbits/core/extensions/prototype.py | 14 -------------- lnbits/core/extensions/storage.py | 29 ----------------------------- 4 files changed, 3 insertions(+), 75 deletions(-) diff --git a/lnbits/core/extensions/api.py b/lnbits/core/extensions/api.py index c7cdb798f..c861b7dd4 100644 --- a/lnbits/core/extensions/api.py +++ b/lnbits/core/extensions/api.py @@ -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", diff --git a/lnbits/core/extensions/models.py b/lnbits/core/extensions/models.py index 9d5abc575..ac94ace92 100644 --- a/lnbits/core/extensions/models.py +++ b/lnbits/core/extensions/models.py @@ -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 diff --git a/lnbits/core/extensions/prototype.py b/lnbits/core/extensions/prototype.py index cc1a93cc5..9565e0db4 100644 --- a/lnbits/core/extensions/prototype.py +++ b/lnbits/core/extensions/prototype.py @@ -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: diff --git a/lnbits/core/extensions/storage.py b/lnbits/core/extensions/storage.py index 4eacf6b3f..5bca76f6c 100644 --- a/lnbits/core/extensions/storage.py +++ b/lnbits/core/extensions/storage.py @@ -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,