events cluster updated with PageInfo
This commit is contained in:
@@ -136,7 +136,9 @@ class PaginationResult:
|
||||
pagination: Pagination state
|
||||
"""
|
||||
|
||||
def __init__(self, data: PostgresResponse, pagination: Pagination, response_model: Any = None):
|
||||
def __init__(
|
||||
self, data: PostgresResponse, pagination: Pagination, response_model: Any = None
|
||||
):
|
||||
self._query = data.query
|
||||
self.pagination = pagination
|
||||
self.response_type = data.is_list
|
||||
@@ -192,7 +194,12 @@ class PaginationResult:
|
||||
|
||||
class QueryOptions:
|
||||
|
||||
def __init__(self, table, data: Union[dict, ListOptions] = None, model_query: Optional[Any] = None):
|
||||
def __init__(
|
||||
self,
|
||||
table,
|
||||
data: Union[dict, ListOptions] = None,
|
||||
model_query: Optional[Any] = None,
|
||||
):
|
||||
self.table = table
|
||||
self.data = data
|
||||
self.model_query = model_query
|
||||
@@ -214,7 +221,9 @@ class QueryOptions:
|
||||
cleaned_model = self.model_query(**cleaned_query)
|
||||
for i in cleaned_query:
|
||||
if hasattr(cleaned_model, i):
|
||||
last_dict[str(cleaned_query_by_model[str(i)][0])] = str(cleaned_query_by_model[str(i)][1])
|
||||
last_dict[str(cleaned_query_by_model[str(i)][0])] = str(
|
||||
cleaned_query_by_model[str(i)][1]
|
||||
)
|
||||
self.data.query = last_dict
|
||||
|
||||
def convert(self) -> tuple:
|
||||
|
||||
@@ -4,7 +4,11 @@ from ApiLayers.ApiValidations.Request import ListOptions
|
||||
from ApiLayers.Schemas import AddressNeighborhood
|
||||
from Services.PostgresDb.Models.crud_alchemy import Credentials
|
||||
from Services.PostgresDb.Models.mixin import BasicMixin
|
||||
from Services.PostgresDb.Models.pagination import Pagination, PaginationResult, QueryOptions
|
||||
from Services.PostgresDb.Models.pagination import (
|
||||
Pagination,
|
||||
PaginationResult,
|
||||
QueryOptions,
|
||||
)
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
@@ -37,24 +41,30 @@ if listing:
|
||||
"size": 11,
|
||||
"order_field": ["type_code", "neighborhood_code"],
|
||||
"order_type": ["asc", "desc"],
|
||||
"query": {
|
||||
"query": {
|
||||
"neighborhood_name__ilike": "A%",
|
||||
"neighborhood_code__contains": "3",
|
||||
"my_other_field__ilike": "B%",
|
||||
"other_other_field__ilike": "C%",
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
query_options = QueryOptions(table=AddressNeighborhood, data=list_options, model_query=QueryModel)
|
||||
address_neighborhoods = AddressNeighborhood.filter_all(*query_options.convert(), db=new_session)
|
||||
query_options = QueryOptions(
|
||||
table=AddressNeighborhood, data=list_options, model_query=QueryModel
|
||||
)
|
||||
address_neighborhoods = AddressNeighborhood.filter_all(
|
||||
*query_options.convert(), db=new_session
|
||||
)
|
||||
|
||||
pagination = Pagination(data=address_neighborhoods)
|
||||
pagination.change(**list_options)
|
||||
|
||||
pagination_result = PaginationResult(data=address_neighborhoods, pagination=pagination)
|
||||
pagination_result = PaginationResult(
|
||||
data=address_neighborhoods, pagination=pagination
|
||||
)
|
||||
print("as_dict", pagination_result.pagination.as_dict())
|
||||
for i, row in enumerate(pagination_result.data):
|
||||
print(i+1, row)
|
||||
print(i + 1, row)
|
||||
|
||||
# list_options_valid = ListOptions(**list_options)
|
||||
# pagination.page = 9
|
||||
|
||||
Reference in New Issue
Block a user