Nová položka departure_minutes v departureborads
Zadání
Přidat položku do API departureboards, bude pouze vypočítávána z ostatních položek následujícím způsobem:
departure_minutes = round((departure_timestamp.predicted - now()) / 60)
if (departure_minutes < 1)
departure_minutes = "<1"
Jde tedy o informaci "za jak dlouho spoj jede" zaokrouhlenou přirozeně na celé minuty tak, že hodnoty menší než jedna (včetně záporných) budou reprezentovány speciální hodnotou "<1" (menší než 1). Tzn.
- Pokud je odjezd za méně než 30 s, bude zde hodnota <1
- Pokud je odjezd za více než 30 s a méně než 1 minutu 30 s, bude zde hodnota 1
- Pokud je odjezd za 1 minutu 30 s až 2 minuty 30 s, bude zde hodnota 2
- ...
Účel
Smyslem je, abychom tento výpočet nenechávali až na klientském zařízení (odj. tabuli) a maximum logiky zůstávalo na serveru. Zároveň v rámci odlaďování systému může dojít k mírným úpravám vzorce a je opět snazší tuto úpravu provést na serveru a nikoliv na klientských zařízeních.
Akceptační kritéria
- Položka je v departureboards přítomná a vypočítaná podle vzorce výše.
- V případě, že bude položka
departure_timestamp.predicted
= null, bude null též hodnotadeparture_minutes
, jinak musí obsahovat vždy kladné celé číslo nebo hodnotu "<1".
Reference do kódu
- přidat atribut
minutes
typu string do odpovědidepartures[].departure_timestamp.minutes
s hodnotou dle zadání výše - přidat testy na převod hodnoty na string dle zadání
-
https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/output-gateway/pid/models/RopidDeparturesModel.ts
- možné implementovat už v rámci SQL, popř. až v rámci kódu
- updatovat dokumentaci v APIARY
Edited by Jan Vlasatý