37 lines
919 B
Python
Executable File
37 lines
919 B
Python
Executable File
import json
|
|
from typing import Optional
|
|
|
|
from fastapi import Query
|
|
|
|
|
|
class CommonParams:
|
|
def __init__(
|
|
self,
|
|
filter: Optional[str] = Query(default=None),
|
|
sort: Optional[str] = Query(default=None),
|
|
search: str = Query(default=""),
|
|
group_by: Optional[str] = Query(default=None),
|
|
limit: int = Query(default=100, ge=1),
|
|
offset: int = Query(default=0, ge=0),
|
|
):
|
|
if filter:
|
|
try:
|
|
self.filter = json.loads(filter)
|
|
except Exception:
|
|
self.filter = filter
|
|
else:
|
|
self.filter = []
|
|
|
|
if sort:
|
|
try:
|
|
self.sort = json.loads(sort)
|
|
except Exception:
|
|
self.sort = sort
|
|
else:
|
|
self.sort = []
|
|
|
|
self.search = search
|
|
self.group_by = group_by
|
|
self.limit = limit
|
|
self.offset = offset
|