cleanup & prepare for 2nd db

This commit is contained in:
2023-08-17 20:06:23 +02:00
parent a5cb869ebe
commit 2e1843336d
3 changed files with 29 additions and 27 deletions

View File

@@ -1,13 +1,12 @@
from sqlmodel import create_engine, SQLModel, Session
from sqlmodel import create_engine, Session
from eveal import models_sde
sqlite_file_name = "eveal.db"
sqlite_url = f"sqlite:///{sqlite_file_name}"
engine = create_engine(sqlite_url, echo=True, future=True)
sqlite_sde_file_name = "sde.db"
sde_engine = create_engine(f"sqlite:///{sqlite_sde_file_name}", echo=True, future=True)
def get_session():
db = Session(engine)
def get_sde_session():
db = Session(sde_engine)
try:
yield db
finally:

View File

@@ -6,10 +6,10 @@ from typing import List
from sqlmodel import SQLModel, Session, select
from eveal.schemas import Evepraisal, PriceReprocess
from eveal.database import engine, get_session
from eveal.database import sde_engine, get_sde_session
from eveal import models_sde
SQLModel.metadata.create_all(engine)
SQLModel.metadata.create_all(sde_engine) # remove? db should be created by import_sde.py
app = FastAPI()
app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"])
@@ -21,13 +21,13 @@ async def root():
@app.post("/reprocess/")
async def reprocess(ep_items: Evepraisal, ep_mat: Evepraisal, efficiency: float = .55, db: Session = Depends(get_session)):
async def reprocess(ep_items: Evepraisal, ep_mat: Evepraisal, efficiency: float = .55, sde: Session = Depends(get_sde_session)):
matprices = {item.typeID: {'sell': item.prices.sell.min, 'buy': item.prices.buy.max} for item in ep_mat.items}
item_reprocess: List[PriceReprocess] = []
for rawitem in ep_items.items:
# item = db.exec(select(models_sde.Type).where(models_sde.Type.id == rawitem.typeID)).one()
item = db.get(models_sde.Type, rawitem.typeID)
# item = sde.exec(select(models_sde.Type).where(models_sde.Type.id == rawitem.typeID)).one()
item = sde.get(models_sde.Type, rawitem.typeID)
buy_reprocess = sell_reprocess = 0.0
for mat in item.materials.all():
buy_reprocess += matprices[mat.type.id]['buy'] * mat.quantity * efficiency