3 services are updated

This commit is contained in:
2025-05-13 18:29:02 +03:00
parent cd62d96158
commit 6dfa17c5e6
54 changed files with 1374 additions and 148 deletions

View File

@@ -1,8 +1,11 @@
from typing import Optional, Union, Type, Any, Dict, TypeVar
from pydantic import BaseModel
from sqlalchemy.orm import Query
from .pagination import default_paginate_config
from .base import PostgresResponse
from typing import Optional, Union
from sqlalchemy.orm import Query
from pydantic import BaseModel
T = TypeVar("T")
class Pagination:
"""
@@ -168,16 +171,7 @@ class PaginationResult:
@property
def data(self) -> Union[list | dict]:
"""Get query object."""
query_ordered = self.dynamic_order_by()
query_paginated = query_ordered.limit(self.limit).offset(self.offset)
queried_data = (
query_paginated.all() if self.response_type else query_paginated.first()
)
data = (
[result.get_dict() for result in queried_data]
if self.response_type
else queried_data.get_dict()
)
if self.response_model:
return [self.response_model(**item).model_dump() for item in data]
return data
query_paginated = self.dynamic_order_by().limit(self.limit).offset(self.offset)
queried_data = (query_paginated.all() if self.response_type else query_paginated.first())
data = ([result.get_dict() for result in queried_data] if self.response_type else queried_data.get_dict())
return [self.response_model(**item).model_dump() for item in data] if self.response_model else data