UserAddresDone
Some checks failed
K8S Fission Deployment / Deployment fission functions (push) Failing after 20s

This commit is contained in:
QuangMinh_123
2025-12-11 13:29:03 +00:00
parent 1620f13124
commit 5359f80e3c
10 changed files with 591 additions and 173 deletions

55
apps/filters.py Normal file
View File

@@ -0,0 +1,55 @@
import dataclasses
from typing import Optional
from flask import request
from helpers import str_to_bool
@dataclasses.dataclass
class AddressFilter:
address: Optional[str] = None
area_code: Optional[str] = None
city_code: Optional[str] = None
created_from: Optional[str] = None
created_to: Optional[str] = None
modified_from: Optional[str] = None
modified_to: Optional[str] = None
@classmethod
def from_request_queries(cls) -> "AddressFilter":
return cls(
address=request.args.get("filter[address]"),
area_code=request.args.get("filter[area_code]"),
city_code=request.args.get("filter[city_code]"),
created_from=request.args.get("filter[created_from]"),
created_to=request.args.get("filter[created_to]"),
modified_from=request.args.get("filter[modified_from]"),
modified_to=request.args.get("filter[modified_to]"),
)
@dataclasses.dataclass
class Page:
page: int = 0
size: int = 10
asc: bool = False
@classmethod
def from_request_queries(cls) -> "Page":
return Page(
page=int(request.args.get("page", 0)),
size=int(request.args.get("size", 10)),
asc=request.args.get("asc", type=str_to_bool) or False
)
@dataclasses.dataclass
class AddressPage(Page):
sortby: Optional[str] = None
filter: AddressFilter = dataclasses.field(
default_factory=AddressFilter.from_request_queries
)
@classmethod
def from_request_queries(cls) -> "AddressPage":
base = Page.from_request_queries()
return cls(**dataclasses.asdict(base), sortby=request.args.get("sortby"))