add fuzzy name search and marketgroup_id search
This commit is contained in:
@@ -2,7 +2,7 @@ from collections import defaultdict
|
|||||||
|
|
||||||
from fastapi import FastAPI, Depends, Path, Query
|
from fastapi import FastAPI, Depends, Path, Query
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from typing import List, Annotated, Tuple, Literal
|
from typing import List, Annotated, Tuple, Literal, Dict, TypedDict
|
||||||
from sqlmodel import SQLModel, Session, select
|
from sqlmodel import SQLModel, Session, select
|
||||||
|
|
||||||
from eveal.schemas import Evepraisal, PriceReprocess
|
from eveal.schemas import Evepraisal, PriceReprocess
|
||||||
@@ -51,10 +51,14 @@ async def sde_types(sde_type: int | str, db: Session = Depends(get_session)) ->
|
|||||||
|
|
||||||
|
|
||||||
@app.post("/sde/types/search")
|
@app.post("/sde/types/search")
|
||||||
async def sde_types_search(query: List[Tuple[Literal["id", "name"], 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"], int | str]], db: Session = Depends(get_session)) -> List[models_sde.SDEType]:
|
||||||
items = []
|
items = []
|
||||||
for key, val in query:
|
for q in query:
|
||||||
items.extend(db.query(models_sde.SDEType).filter(getattr(models_sde.SDEType, key) == val).all())
|
for k in q.keys():
|
||||||
|
if k.endswith("_i"):
|
||||||
|
items.extend(db.query(models_sde.SDEType).filter(getattr(models_sde.SDEType, k[:-2]).contains(q[k])).all())
|
||||||
|
else:
|
||||||
|
items.extend(db.query(models_sde.SDEType).filter(getattr(models_sde.SDEType, k) == q[k]).all())
|
||||||
return items
|
return items
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user