"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const express = require("express"); const logger = require("./log"); const bodyParser = require("body-parser"); const config = require("./config"); const MqttDispatcher_1 = require("./MqttDispatcher"); class GeoFences { constructor() { this.app = express(); this.app.use(bodyParser.urlencoded({ extended: false })); this.app.use(bodyParser.json()); } exec() { this.app.post('/', (req, res) => { const reqData = req.body; const deviceId = reqData.device; let occupantName = 'unknown'; const location = reqData.name; if (deviceId in config.dict.occupants) { occupantName = config.dict.occupants[deviceId]; } const direction = (reqData.entry == '1') ? 'arrives at' : 'leaves from'; logger.info(`${deviceId} (${occupantName}) ${direction} ${location}`); logger.info(JSON.stringify(reqData)); res.send('OK'); const state = (reqData.entry == '1') ? 'present' : 'absent'; MqttDispatcher_1.mqttHandler.send(`${GeoFences.geoFencesTopicPre}/${occupantName}`, state); }); let port = parseInt(config.dict.geofencesPort); this.server = this.app.listen(port, '', () => { logger.info(`geofences server listening on ${port}`); }); } } GeoFences.geoFencesTopicPre = "dispatcher_ng/geofences"; exports.GeoFences = GeoFences; //# sourceMappingURL=GeoFences.js.map