replace sql exec by query orm

This commit is contained in:
2023-10-13 20:35:44 +02:00
parent 1a493545af
commit 17a46cd6da
2 changed files with 13 additions and 4 deletions

View File

@@ -26,7 +26,6 @@ async def reprocess(ep_items: Evepraisal, ep_mat: Evepraisal, efficiency: float
item_reprocess: List[PriceReprocess] = [] item_reprocess: List[PriceReprocess] = []
for rawitem in ep_items.items: for rawitem in ep_items.items:
# item = sde.exec(select(models_sde.Type).where(models_sde.SDEType.id == rawitem.typeID)).one()
item = db.get(models_sde.SDEType, rawitem.typeID) item = db.get(models_sde.SDEType, rawitem.typeID)
buy_reprocess = sell_reprocess = 0.0 buy_reprocess = sell_reprocess = 0.0
for mat in item.materials.all(): for mat in item.materials.all():
@@ -47,7 +46,7 @@ async def sde_types(sde_type: int | str, db: Session = Depends(get_session)) ->
try: try:
item = db.get(models_sde.SDEType, int(sde_type)) item = db.get(models_sde.SDEType, int(sde_type))
except ValueError: except ValueError:
item = db.exec(select(models_sde.SDEType).where(models_sde.SDEType.name == sde_type)).one() item = db.query(models_sde.SDEType).filter(models_sde.SDEType.name == sde_type).one()
return item return item
@@ -55,7 +54,7 @@ async def sde_types(sde_type: int | str, db: Session = Depends(get_session)) ->
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[Tuple[Literal["id", "name"], int | str]], db: Session = Depends(get_session)) -> List[models_sde.SDEType]:
items = [] items = []
for key, val in query: for key, val in query:
items.extend(db.exec(select(models_sde.SDEType).where(getattr(models_sde.SDEType, key) == val)).all()) items.extend(db.query(models_sde.SDEType).filter(getattr(models_sde.SDEType, key) == val).all())
return items return items
@@ -66,6 +65,15 @@ async def sde_types_market(sde_type: int | str, region_id: int | str, db: Sessio
return list(esi.esi_client.Market.get_markets_region_id_orders(order_type="all", type_id=sde_type, region_id=region_id)) return list(esi.esi_client.Market.get_markets_region_id_orders(order_type="all", type_id=sde_type, region_id=region_id))
@app.get("/_tools/get_all_mat")
async def _get_all_mat(db: Session = Depends(get_session)):
materials = db.query(models_sde.SDETypeMaterial).filter(models_sde.SDETypeMaterial.type.has(models_sde.SDEType.published == True)).all()
allmat = set()
for mat in materials:
allmat.add(mat.material_type.name)
return allmat
if __name__ == "__main__": if __name__ == "__main__":
import uvicorn import uvicorn
uvicorn.run("eveal.main:app", host="0.0.0.0", port=8000, reload=True) uvicorn.run("eveal.main:app", host="0.0.0.0", port=8000, reload=True)

View File

@@ -136,7 +136,8 @@ new_typemat = total_typemat = 0
with Session(engine) as db: with Session(engine) as db:
for id, material in materials.items(): for id, material in materials.items():
for mat in material['materials']: for mat in material['materials']:
db_typemat = db.exec(select(models_sde.SDETypeMaterial).where(models_sde.SDETypeMaterial.type_id == id, models_sde.SDETypeMaterial.material_type_id == mat['materialTypeID'])).one_or_none() # db_typemat = db.exec(select(models_sde.SDETypeMaterial).where(models_sde.SDETypeMaterial.type_id == id, models_sde.SDETypeMaterial.material_type_id == mat['materialTypeID'])).one_or_none()
db_typemat = db.query(models_sde.SDETypeMaterial).filter(models_sde.SDETypeMaterial.type_id == id, models_sde.SDETypeMaterial.material_type_id == mat['materialTypeID']).one_or_none()
if not db_typemat: if not db_typemat:
db_typemat = models_sde.SDETypeMaterial() db_typemat = models_sde.SDETypeMaterial()
db.add(db_typemat) db.add(db_typemat)