UNPKG

sails-sql-criteria

Version:
49 lines (34 loc) 1.15 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports['default'] = SqlCriteriaPolicy; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _sqlParser = require('sql-parser'); function SqlCriteriaPolicy(req, res, next) { if (req.query && _lodash2['default'].isString(req.query.sql)) { req.query = buildWaterlineCriteria(req.query.sql); console.log(req.query); } next(); } function buildWaterlineCriteria(sql) { console.log(sql); var tokens = _sqlParser.lexer.tokenize(sql); console.log(tokens); var criteria = _lodash2['default'].reduce(tokens, function (result, token, i) { var type = token[0]; var value = token[1]; var nextToken = tokens[i + 1]; if (!_lodash2['default'].contains(['LITERAL'], type)) return result; if (type == 'LITERAL' && nextToken[0] == 'OPERATOR') { result[value] = tokens[i + 2][1]; } return result; }, {}); console.log(criteria); return criteria; } module.exports = exports['default'];