const createClient = require('hafas-client') const insaProfile = require('hafas-client/p/insa') var express = require("express"); var app = express(); const port = 3000 const client = createClient(insaProfile, 'my-awesome-program') function printResult(departures,respdata) { let outstr = "" departures.forEach(element => { let delay = "" if (element['delay'] != 0) { delay = element['delay'] / 60 } respdata['departures'].push({ "line": element['line']['id'], "direction": element['direction'], "time": element['when'], "delay": delay }) }); return respdata; } async function getNearestStationDepartures(lat, lon) { var queryPromise = client.nearby({ type: 'location', latitude: lat, longitude: lon }, { distance: 400 }) var result = await queryPromise var respdata = { "name" : result[0]['name'], "departures" : [] } var queryPromise2 = client.departures(result[0]['id']) var departures = await queryPromise2 return printResult(departures,respdata) } function cutPadString(string, length) { let outstring = "" if (string.length > length) { outstring = string.substring(0, length - 3) + "..." } else { if (string.length < length) { outstring = string.padEnd(length) } else { outstring = string } } return outstring } app.get('/', (req, res) => res.send('Hello World!')) // Parse JSON bodies (as sent by API clients) app.use(express.json()); // Access the parse results as request.body app.post('/', function (request, response) { console.log(request.body.lat); console.log(request.body.lon); getNearestStationDepartures(request.body.lat, request.body.lon) .then((result) => { response.send(result) }) .catch(console.log("Error.")) }); app.listen(port, () => console.log(`Example app listening on port ${port}!`))