UNPKG

domotz-remote-pawn

Version:

Domotz Agent

45 lines (41 loc) 1.73 kB
/** This file is part of Domotz Agent. * Copyright (C) 2016 Domotz Ltd * * Domotz Agent is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Domotz Agent is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Domotz Agent. If not, see <http://www.gnu.org/licenses/>. * * Created by Iacopo Papalini <iacopo@domotz.com> on 27/02/2017. */ module.exports.post = function (resourceLocator) { var eventHandler = resourceLocator.event; var log = resourceLocator.log; var myConsole = log.decorateLogs(); return function (req, res) { var eventName = req.params.event_name; const eventFn = eventHandler[eventName]; var errorStr; if (typeof eventFn !== 'function') { errorStr = 'Event '+ eventName + ' does not exist or is not a function.'; myConsole.error(errorStr); return res.status(404).json({ error: errorStr }); } try { eventFn(resourceLocator); res.json({ message: 'Event: ' + eventName + ' triggered successfully' }); } catch (error) { errorStr = 'Error during event ' + eventName + ' execution: ' + error.message; myConsole.error(errorStr); res.status(500).json({ error: errorStr }); } }; };