Files
sakhteman/core/urls/sumery.py
T
2024-02-15 00:17:51 +03:30

39 lines
1.3 KiB
Python

from typing import List
from fastapi import Request
from pydantic import create_model
from config import conf
from core.app import app
from core.utils.router import generate_router, safe_route
from core.utils.sumery import sumery_executor, sumery_default_getter
router = generate_router("com/sumery", auth_dependencies=True, version='v2')
_tag_base = ['sumery']
_pre = conf.server.prefix_url.replace('v1', 'v2')
@router.get('/{_object}', response_model=List, tags=_tag_base)
async def smart_query(q: str, _object: str, request: Request):
params = request.query_params
extra_filter = {}
for key, value in params.items():
if key.startswith('e_'):
extra_filter.setdefault(key[2:], value)
return await safe_route('get', sumery_executor, _object, q, extra_filter)
@router.post('/default/{_object}', response_model=List, tags=_tag_base)
async def smart_query(_object: str, _input: create_model('InputDefaultSumery', ids=[]), request: Request):
params = request.query_params
extra_filter = {}
for key, value in params.items():
if key.startswith('e_'):
extra_filter.setdefault(key[2:], value)
return await safe_route('get', sumery_default_getter, _object, _input.ids, extra_filter)
app.include_router(router)