UNPKG

plywood-proxy

Version:
45 lines (44 loc) 1.33 kB
'use strict'; var express_1 = require('express'); var plywood_1 = require('plywood'); var config_1 = require('../../config'); var router = express_1.Router(); router.post('/', function (req, res) { var _a = req.body, dataSource = _a.dataSource, expression = _a.expression; if (typeof dataSource !== 'string') { res.status(400).send({ error: 'must have a dataSource' }); return; } var ex = null; try { ex = plywood_1.Expression.fromJS(expression); } catch (e) { res.status(400).send({ error: 'bad expression', message: e.message }); return; } config_1.DATA_SOURCE_MANAGER.getQueryableDataSource(dataSource).then(function (myDataSource) { if (!myDataSource) { res.status(400).send({ error: 'unknown dataset' }); return; } myDataSource.executor(ex).then(function (data) { res.send(data.toJS()); }, function (e) { console.log('error:', e.message); if (e.hasOwnProperty('stack')) { console.log(e.stack); } res.status(500).send({ error: 'could not compute', message: e.message }); }); }).done(); }); module.exports = router;