Postin lähetyksen seurannan tapahtumien haku on 8th:lla helppoa, koska json muotoista dataa on helppo käsitellä suoraan.
Ohjelma ottaa lähetystunnuksen komentoriviparametrina ja tulostaa yksinkertaisen listan lähetyksen tapahtumista.
needs net/http
"https://www.posti.fi/henkiloasiakkaat/seuranta/api/shipments/"
0 args "Anna lähetystunnus parametriksi" thrownull s:+ constant URL
{
url: @URL
} constant REQUEST
: event?
"locationName" m:@ "" ?: swap
"timestamp" m:@ d:parse "%Z" d:new d:format 3 s:lsub >n 60 n:* d:tzadjust
"%Y-%M-%D %H:%T:%S" swap d:format swap
"description" m:@ nip
"fi" m:@ nip
"- %s %s %s\n" s:strfmt . ;
: app:main
REQUEST net:get if
nip json> "shipments" m:@ nip a:len 0 n:> if
0 a:@ nip "events" m:@ nip
' event? a:each! drop
else
drop
"Virheellinen seurantakoodi.\n" .
then
else
2drop
"Ei saanut haettua json dataa.\n" .
then
bye ;Alla esimerkki ohjelman tulostuksesta:
- Lähetys on kuljetuksessa. 2020-09-29 13:07:14 HÄMEENLINNA - Lähetys on kuljetuksessa. 2020-09-28 19:57:21 Posti Logistiikkakeskus - Lähetys on lajiteltu. 2020-09-28 18:41:51 VANTAA - Lähetys ei ole vielä saapunut Postille, odotathan 2020-09-28 02:20:03
Aihe on jo aika vanha, joten et voi enää vastata siihen.