UNPKG

mythtv-event-emitter

Version:
53 lines 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.scrubPayload = exports.router = void 0; const express_1 = require("express"); const events_1 = require("./events"); const messages_1 = require("./messages"); const bodyParser = require("body-parser"); const moment = require("moment"); exports.router = express_1.Router(); exports.router.use(bodyParser.json()) .put('/', (req, res) => { const payload = scrubPayload(req.body); res.end(() => { events_1.notifyEvent(payload.EVENTNAME, payload.HOSTNAME || payload.SENDER, payload); }); }); const utcDateFields = messages_1.dateFields.map(field => { return field + 'UTC'; }); const isoFields = messages_1.dateFields.map(field => { return field + 'ISO'; }); const isoUtcFields = isoFields.map(field => { return field + 'UTC'; }); const mythDateFormat = 'YYYYMMDDHHmmss'; function scrubPayload(message) { Object.keys(message).forEach((key) => { const value = message[key]; if (key != 'SENDER' && key != 'EVENTNAME') { if (value && ('%' + key + '%' == value || value.trim() == "")) { message[key] = undefined; } else { if (isoFields.includes(key) || isoUtcFields.includes(key)) { message[key] = new Date(value); } else if (messages_1.dateFields.includes(key)) { message[key] = moment(value, mythDateFormat).toDate(); } else if (utcDateFields.includes(key)) { message[key] = moment.utc(value, mythDateFormat).toDate(); } else if (key == 'ORIGINALAIRDATE') { message[key] = moment(value, 'YYYY-MM-DD').toDate(); } } } }); return message; } exports.scrubPayload = scrubPayload; //# sourceMappingURL=router.js.map