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
|
COPY --chown=appuser:appuser eveal /app
|
||||||
|
|
||||||
USER appuser
|
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
|
from eveal import models_sde
|
||||||
|
|
||||||
sqlite_sde_file_name = "sde.db"
|
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():
|
def get_sde_session():
|
||||||
db = Session(sde_engine)
|
db = Session(sde_engine)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from fastapi import FastAPI, Depends
|
from fastapi import FastAPI, Depends, Path, Query
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from typing import List
|
from typing import List, Annotated, Tuple, Literal
|
||||||
from sqlmodel import SQLModel, Session, select
|
from sqlmodel import SQLModel, Session, select
|
||||||
|
|
||||||
from eveal.schemas import Evepraisal, PriceReprocess
|
from eveal.schemas import Evepraisal, PriceReprocess
|
||||||
@@ -40,3 +40,20 @@ async def reprocess(ep_items: Evepraisal, ep_mat: Evepraisal, efficiency: float
|
|||||||
name=item.name
|
name=item.name
|
||||||
))
|
))
|
||||||
return item_reprocess
|
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