From a915581ba1ece1b2530934bb87b58b3960db86a2 Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Tue, 9 Nov 2021 13:44:40 +0100 Subject: [PATCH] Group passages by ligne --- main.py | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/main.py b/main.py index 021b8ae..956fa00 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,5 @@ import enum -from typing import Any, List, Optional +from typing import Any, DefaultDict, List, Optional import httpx from fastapi import FastAPI, HTTPException @@ -9,26 +9,14 @@ from pydantic import BaseModel app = FastAPI() -class PassageType(enum.Enum): - E = "E" - T = "T" - - class Passage(BaseModel): - coursetheorique: str - delaipassage: str - direction: str - gid: int - heurepassage: str - id: int - idtarretdestination: int - last_update_fme: str ligne: str - type: PassageType + delais: List[str] class Passages(BaseModel): passages: List[Passage] + stop_id: int @app.get("/stop/{stop_id}", response_model=Passages) @@ -57,8 +45,11 @@ async def stop( detail="HTTP error during call to remote API", ) - passages: List[Passage] = [] + passages = DefaultDict(list) for passage in res.json().get("values"): if passage.get("id") == stop_id: - passages.append(passage) - return Passages(passages=passages) + passages[passage.get("ligne")].append(passage.get("delaipassage")) + passages_list = [] + for ligne, delais in passages.items(): + passages_list.append(Passage(ligne=ligne, delais=delais)) + return Passages(passages=passages_list, stop_id=stop_id)