Refresh token, spolecne lety s copilotem, lazy typ

This commit is contained in:
Michal Kváček
2023-07-29 23:27:24 +02:00
parent 77dd5538d3
commit fcd80f20e8
11 changed files with 133 additions and 38 deletions
+27
View File
@@ -0,0 +1,27 @@
from collections import defaultdict
from typing import List
from sqlalchemy import select
from strawberry.dataloader import DataLoader
from database import async_session
from database.models import Flight
class FlightsLoader:
def __init__(self, relationship_column: str):
self.relationship_column = relationship_column
async def load(self, ids: List[int]):
async with async_session() as session:
query = (
select(Flight)
.filter(getattr(Flight, self.relationship_column).in_(ids))
)
data = (await session.scalars(query)).all()
result_data = defaultdict(list)
for poi in data:
result_data[getattr(poi, self.relationship_column)].append(poi)
return [result_data[id_] for id_ in ids]
flights_by_copilot_dataloader = DataLoader(load_fn=FlightsLoader("copilot_id").load, cache=False)