Socket
Socket
Sign inDemoInstall

forest-express

Package Overview
Dependencies
Maintainers
5
Versions
374
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

forest-express - npm Package Compare versions

Comparing version 10.0.0-beta.3 to 10.0.0-beta.4

167

dist/routes/stats.js

@@ -146,12 +146,50 @@ "use strict";

this.getWithLiveQuery = function (request, response, next) {
return new Implementation.QueryStatGetter(request.body, opts).perform().then(function (result) {
switch (request.body.type) {
case CHART_TYPE_VALUE:
if (result.length) {
var resultLine = result[0];
this.getWithLiveQuery = /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(request, response, next) {
var _yield$chartHandler$g, query, contextVariables, result, resultLine, _resultLine, data;
if (resultLine.value === undefined) {
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
_context2.next = 3;
return chartHandler.getQueryForChart({
userId: request.user.id,
renderingId: request.user.renderingId,
chartRequest: request.body
});
case 3:
_yield$chartHandler$g = _context2.sent;
query = _yield$chartHandler$g.query;
contextVariables = _yield$chartHandler$g.contextVariables;
_context2.next = 8;
return new Implementation.QueryStatGetter(_objectSpread(_objectSpread({}, request.body), {}, {
query: query,
contextVariables: _objectSpread(_objectSpread({}, request.body.contextVariables || {}), contextVariables)
}), opts).perform();
case 8:
result = _context2.sent;
_context2.t0 = request.body.type;
_context2.next = _context2.t0 === CHART_TYPE_VALUE ? 12 : _context2.t0 === CHART_TYPE_PIE ? 20 : _context2.t0 === CHART_TYPE_LEADERBOARD ? 20 : _context2.t0 === CHART_TYPE_LINE ? 22 : _context2.t0 === CHART_TYPE_OBJECTIVE ? 25 : 33;
break;
case 12:
if (!result.length) {
_context2.next = 19;
break;
}
resultLine = result[0];
if (!(resultLine.value === undefined)) {
_context2.next = 18;
break;
}
throw getErrorQueryColumnsName(resultLine, '\'value\'');
} else {
case 18:
result = {

@@ -161,45 +199,52 @@ countCurrent: resultLine.value,

};
}
}
break;
case 19:
return _context2.abrupt("break", 34);
case CHART_TYPE_PIE:
case CHART_TYPE_LEADERBOARD:
if (result.length) {
result.forEach(function (resultLine) {
if (resultLine.value === undefined || resultLine.key === undefined) {
throw getErrorQueryColumnsName(resultLine, '\'key\', \'value\'');
case 20:
if (result.length) {
result.forEach(function (resultLine) {
if (resultLine.value === undefined || resultLine.key === undefined) {
throw getErrorQueryColumnsName(resultLine, '\'key\', \'value\'');
}
});
}
});
}
break;
return _context2.abrupt("break", 34);
case CHART_TYPE_LINE:
if (result.length) {
result.forEach(function (resultLine) {
if (resultLine.value === undefined || resultLine.key === undefined) {
throw getErrorQueryColumnsName(resultLine, '\'key\', \'value\'');
case 22:
if (result.length) {
result.forEach(function (resultLine) {
if (resultLine.value === undefined || resultLine.key === undefined) {
throw getErrorQueryColumnsName(resultLine, '\'key\', \'value\'');
}
});
}
});
}
result = result.map(function (resultLine) {
return {
label: resultLine.key,
values: {
value: resultLine.value
result = result.map(function (resultLine) {
return {
label: resultLine.key,
values: {
value: resultLine.value
}
};
});
return _context2.abrupt("break", 34);
case 25:
if (!result.length) {
_context2.next = 32;
break;
}
};
});
break;
case CHART_TYPE_OBJECTIVE:
if (result.length) {
var _resultLine = result[0];
_resultLine = result[0];
if (_resultLine.value === undefined || _resultLine.objective === undefined) {
if (!(_resultLine.value === undefined || _resultLine.objective === undefined)) {
_context2.next = 31;
break;
}
throw getErrorQueryColumnsName(_resultLine, '\'value\', \'objective\'');
} else {
case 31:
result = {

@@ -209,19 +254,35 @@ objective: _resultLine.objective,

};
}
}
break;
case 32:
return _context2.abrupt("break", 34);
default:
throw new Error('Unknown Chart type');
}
case 33:
throw new Error('Unknown Chart type');
return new StatSerializer({
value: result
}).perform();
}).then(function (data) {
response.send(data);
})["catch"](next);
};
case 34:
data = new StatSerializer({
value: result
}).perform();
response.send(data);
_context2.next = 41;
break;
case 38:
_context2.prev = 38;
_context2.t1 = _context2["catch"](0);
next(_context2.t1);
case 41:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[0, 38]]);
}));
return function (_x4, _x5, _x6) {
return _ref2.apply(this, arguments);
};
}();
this.perform = function () {

@@ -228,0 +289,0 @@ app.post(path.generate("stats/".concat(modelName), opts), auth.ensureAuthenticated, permissionMiddlewareCreator.stats(), _this.get);

{
"name": "forest-express",
"description": "Official package for all Forest Express Lianas",
"version": "10.0.0-beta.3",
"version": "10.0.0-beta.4",
"author": "Sandro Munda <sandro@munda.me>",

@@ -31,3 +31,3 @@ "contributors": [

"@forestadmin/context": "1.31.0",
"@forestadmin/forestadmin-client": "1.0.0-alpha.3",
"@forestadmin/forestadmin-client": "1.0.0",
"base32-encode": "1.1.1",

@@ -34,0 +34,0 @@ "bitwise-xor": "0.0.0",

@@ -6,2 +6,3 @@ const { init } = require('@forestadmin/context');

getChartWithContextInjected: jest.fn(),
getQueryForChart: jest.fn(),
};

@@ -58,2 +59,63 @@ init((context) => context.addInstance('chartHandler', chartHandler));

});
describe('.getWithLiveQuery', () => {
it('should return a value for objective chart', async () => {
const app = {};
const model = { name: 'book' };
const performMock = jest.fn().mockResolvedValue(([{ value: 5, objective: 10 }]));
const FakeQueryStatGetter = jest.fn().mockImplementation(() => ({ perform: performMock }));
const Implementation = {
getModelName: jest.fn(() => 'books'),
QueryStatGetter: FakeQueryStatGetter,
};
const chart = { query: 'SELECT something as value', contextVariables: { power: 'fly' } };
chartHandler.getQueryForChart.mockResolvedValue(chart);
const next = jest.fn();
const req = {
params: { recordId: '1' },
query: { timezone: 'Europe/Paris' },
user: { renderingId: 1, id: 10 },
body: { type: 'Objective', contextVariables: { test: 'me', power: 'fake' } },
};
const res = {
send: jest.fn(),
};
const expectedParams = {
type: 'Objective',
...chart,
contextVariables: {
...req.body.contextVariables,
...chart.contextVariables,
},
};
const subject = new Stats(app, model, Implementation);
await subject.getWithLiveQuery(req, res, next);
expect(chartHandler.getQueryForChart).toHaveBeenCalledOnceWith({
userId: 10,
renderingId: 1,
chartRequest: req.body,
});
expect(FakeQueryStatGetter).toHaveBeenCalledOnceWith(expectedParams, {});
expect(performMock).toHaveBeenCalledOnceWith();
expect(res.send).toHaveBeenCalledOnceWith({
data: {
id: expect.toBeString(),
type: 'stats',
attributes: {
value: {
value: 5,
objective: 10,
},
},
},
});
});
});
});

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with āš”ļø by Socket Inc