fixup!
This commit is contained in:
+5
-4
@@ -9,7 +9,6 @@ from contextlib import asynccontextmanager
|
||||
from enum import Enum
|
||||
from typing import Any, Generic, Literal, Optional, TypeVar
|
||||
|
||||
import shortuuid
|
||||
from loguru import logger
|
||||
from pydantic import BaseModel, ValidationError, root_validator
|
||||
from sqlalchemy import event
|
||||
@@ -191,7 +190,7 @@ class Connection(Compat):
|
||||
{filters.order_by()}
|
||||
{filters.pagination()}
|
||||
""",
|
||||
parsed_values,
|
||||
self.rewrite_values(parsed_values),
|
||||
)
|
||||
if rows:
|
||||
# no need for extra query if no pagination is specified
|
||||
@@ -401,7 +400,9 @@ class Filter(BaseModel, Generic[TFilterModel]):
|
||||
values: Optional[dict] = None
|
||||
|
||||
@classmethod
|
||||
def parse_query(cls, key: str, raw_values: list[Any], model: type[TFilterModel]):
|
||||
def parse_query(
|
||||
cls, key: str, raw_values: list[Any], model: type[TFilterModel], i: int = 0
|
||||
):
|
||||
# Key format:
|
||||
# key[operator]
|
||||
# e.g. name[eq]
|
||||
@@ -422,7 +423,7 @@ class Filter(BaseModel, Generic[TFilterModel]):
|
||||
validated, errors = compare_field.validate(raw_value, {}, loc="none")
|
||||
if errors:
|
||||
raise ValidationError(errors=[errors], model=model)
|
||||
values[f"{field}__{shortuuid.uuid()}"] = validated
|
||||
values[f"{field}__{i}"] = validated
|
||||
else:
|
||||
raise ValueError("Unknown filter field")
|
||||
|
||||
|
||||
@@ -204,9 +204,9 @@ def parse_filters(model: Type[TFilterModel]):
|
||||
):
|
||||
params = request.query_params
|
||||
filters = []
|
||||
for key in params.keys():
|
||||
for i, key in enumerate(params.keys()):
|
||||
try:
|
||||
filters.append(Filter.parse_query(key, params.getlist(key), model))
|
||||
filters.append(Filter.parse_query(key, params.getlist(key), model, i))
|
||||
except ValueError:
|
||||
continue
|
||||
|
||||
|
||||
+2
-2
@@ -184,7 +184,7 @@ async def fake_payments(client, adminkey_headers_from):
|
||||
# we have to wait a second to ensure a different timestamp than previous invoices
|
||||
if DB_TYPE == SQLITE:
|
||||
await asyncio.sleep(1)
|
||||
ts = int(time())
|
||||
ts = time()
|
||||
|
||||
fake_data = [
|
||||
CreateInvoice(amount=10, memo="aaaa", out=False),
|
||||
@@ -201,5 +201,5 @@ async def fake_payments(client, adminkey_headers_from):
|
||||
assert data["checking_id"]
|
||||
await update_payment_status(data["checking_id"], status=PaymentState.SUCCESS)
|
||||
|
||||
params = {"time[ge]": ts, "time[le]": int(time()) + 1}
|
||||
params = {"time[ge]": ts, "time[le]": time()}
|
||||
return fake_data, params
|
||||
|
||||
Reference in New Issue
Block a user