ttc-api
Version:
A fully typed Tbilisi Transport Company API Wrapper
2 lines (1 loc) • 1.67 kB
JavaScript
import i from"requestly";var s=i.create({baseUrl:"https://transit.ttc.com.ge/pis-gateway/api/v2",params:{locale:"ka"},headers:{"X-Api-Key":"c0a2f304-551a-4d08-b8df-2c53ecd57f9f"}}),y={setLocale:c,stops:l,stop:u,routes:T,plan:p,busPolyline:d,locations:f,stopRoutes:g,busRoutes:m,arrivalTimes:w};function c(t){s.params={...s.params,locale:t}}async function l(t){let{data:a}=await s.get("/stops",{params:t});return a}async function u(t){let{data:a}=await s.get(`/stops/1:${t}`);return a}async function T(t){let{data:a}=await s.get("/routes",{params:{...t,modes:"BUS"}});return a}async function p({from:t,to:a,locale:o="en"}){let{data:e}=await s.get("/plan",{params:{fromPlace:t.join(","),toPlace:a.join(","),departMode:"leaveNow",modes:"WALK,BUS",optimize:"quick",locale:o}});return e}async function d({busId:t,forward:a=!0}){let{data:o}=await s.get(`/routes/1:${t}/polyline`,{params:{forward:a.toString()}});return o}async function f({busId:t,forward:a=!0}){let{data:o}=await s.get(`/routes/1:${t}/positions`,{params:{forward:a.toString()}});return o}async function g({stopId:t,locale:a="en"}){let{data:o}=await s.get(`/stops/1:${t}/routes`,{params:{locale:a}});return o}async function m({busId:t,forward:a,locale:o="en"}){let{data:e,ok:r,status:n}=await s.get(`/routes/1:${t}/stops`,{params:{locale:o,forward:(a??!1).toString()}});if(!r)throw new Error(`request failed with status code ${n}: ${typeof e=="object"?JSON.stringify(e,null,2):e}`);return e}async function w({stopId:t,locale:a="en",ignoreScheduledArrivalTimes:o=!1}){let{data:e}=await s.get(`/stops/1:${t}/arrival-times`,{params:{locale:a,ignoreScheduledArrivalTimes:o.toString()}});return e}export{y as ttc};