types/search & types/sde_type/
This commit is contained in:
@@ -11,4 +11,4 @@ RUN python -m pip install --no-cache-dir --upgrade -r requirements.txt
|
||||
COPY --chown=appuser:appuser eveal /app
|
||||
|
||||
USER appuser
|
||||
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
CMD ["uvicorn", "eveal.main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
@@ -3,7 +3,7 @@ from sqlmodel import create_engine, Session
|
||||
from eveal import models_sde
|
||||
|
||||
sqlite_sde_file_name = "sde.db"
|
||||
sde_engine = create_engine(f"sqlite:///{sqlite_sde_file_name}", echo=True, future=True)
|
||||
sde_engine = create_engine(f"sqlite:///{sqlite_sde_file_name}", echo=True, future=True, connect_args={"check_same_thread": False})
|
||||
|
||||
def get_sde_session():
|
||||
db = Session(sde_engine)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
from collections import defaultdict
|
||||
|
||||
from fastapi import FastAPI, Depends
|
||||
from fastapi import FastAPI, Depends, Path, Query
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from typing import List
|
||||
from typing import List, Annotated, Tuple, Literal
|
||||
from sqlmodel import SQLModel, Session, select
|
||||
|
||||
from eveal.schemas import Evepraisal, PriceReprocess
|
||||
@@ -40,3 +40,20 @@ async def reprocess(ep_items: Evepraisal, ep_mat: Evepraisal, efficiency: float
|
||||
name=item.name
|
||||
))
|
||||
return item_reprocess
|
||||
|
||||
|
||||
@app.get("/sde/types/{sde_type}/")
|
||||
async def sde_types(sde_type: int | str, sde: Session = Depends(get_sde_session)) -> models_sde.Type:
|
||||
try:
|
||||
item = sde.get(models_sde.Type, int(sde_type))
|
||||
except ValueError:
|
||||
item = sde.exec(select(models_sde.Type).where(models_sde.Type.name == sde_type)).one()
|
||||
return item
|
||||
|
||||
|
||||
@app.post("/sde/types/search")
|
||||
async def sde_types_search(query: List[Tuple[Literal["id", "name"], int | str]], sde: Session = Depends(get_sde_session)) -> List[models_sde.Type]:
|
||||
items = []
|
||||
for key, val in query:
|
||||
items.extend(sde.exec(select(models_sde.Type).where(getattr(models_sde.Type, key) == val)).all())
|
||||
return items
|
||||
|
||||
Reference in New Issue
Block a user