search queries are now selective instead of additive

This commit is contained in:
2023-10-18 14:11:08 +02:00
parent d1e9136efa
commit 67025158af

View File

@@ -54,11 +54,13 @@ async def sde_types(sde_type: int | str, db: Session = Depends(get_session)) ->
async def sde_types_search(query: List[Dict[Literal["id", "name", "name_i", "marketgroup_id", "metagroup_id"], int | str]], db: Session = Depends(get_session)) -> List[models_sde.SDEType]: async def sde_types_search(query: List[Dict[Literal["id", "name", "name_i", "marketgroup_id", "metagroup_id"], int | str]], db: Session = Depends(get_session)) -> List[models_sde.SDEType]:
items = [] items = []
for q in query: for q in query:
qitems = db.query(models_sde.SDEType)
for k in q.keys(): for k in q.keys():
if k.endswith("_i"): if k.endswith("_i"):
items.extend(db.query(models_sde.SDEType).filter(getattr(models_sde.SDEType, k[:-2]).contains(q[k])).all()) qitems = qitems.filter(getattr(models_sde.SDEType, k[:-2]).contains(q[k]))
else: else:
items.extend(db.query(models_sde.SDEType).filter(getattr(models_sde.SDEType, k) == q[k]).all()) qitems = qitems.filter(getattr(models_sde.SDEType, k) == q[k])
items.extend(qitems.all())
return items return items