75 lines
2.0 KiB
JavaScript
75 lines
2.0 KiB
JavaScript
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}!`)) |