types/search & types/sde_type/

This commit is contained in:
Tom Villette
2023-08-29 17:48:48 +02:00
parent 817d83b6a2
commit cd39ac22fc
3 changed files with 21 additions and 4 deletions

View File

@@ -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"]

View File

@@ -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)

View File

@@ -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