17 lines
507 B
Python
17 lines
507 B
Python
from typing import List
|
|
from sqlalchemy import select
|
|
from strawberry.dataloader import DataLoader
|
|
from database import async_session
|
|
from database.models import Aircraft
|
|
|
|
|
|
async def load(ids: List[int]):
|
|
async with async_session() as session:
|
|
models = (await session.scalars(select(Aircraft).filter(Aircraft.id.in_(ids)))).all()
|
|
|
|
models_by_id = {model.id: model for model in models}
|
|
return [models_by_id.get(id_) for id_ in ids]
|
|
|
|
|
|
aircraft_dataloader = DataLoader(load_fn=load)
|