Group passages by ligne
This commit is contained in:
parent
055a24a820
commit
a915581ba1
1 changed files with 9 additions and 18 deletions
27
main.py
27
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)
|
||||
|
|
Reference in a new issue