UNPKG

backendless-console-sdk

Version:

Backendless Console SDK for Node.js and browser

150 lines (147 loc) 6.21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _urls = _interopRequireDefault(require("./urls")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var year = 'YEAR'; var month = 'MONTH'; var lastDay = 'MONTH'; //no server analogue for now var sixmo = 'HALF_YEAR'; var periods = { lastDay: lastDay, year: year, month: month, sixmo: sixmo }; var transformPeriod = function transformPeriod(period) { return periods[period] || month; }; var buildSegmentsQuery = function buildSegmentsQuery(key, segments) { var result = {}; if (segments) { segments.forEach(function (segment) { result["".concat(key, "[").concat(segment, "]")] = true; }); } return result; }; var buildClientTypeSegmentsQuery = function buildClientTypeSegmentsQuery(clientTypes) { return buildSegmentsQuery('apiKeyName', clientTypes); }; var buildMessagingTypeSegmentsQuery = function buildMessagingTypeSegmentsQuery(messagingType) { return buildSegmentsQuery('messagingType', messagingType); }; var _default = exports["default"] = function _default(req) { return { getAppStats: function getAppStats(appId, period) { return req.get("".concat(_urls["default"].appConsole(appId), "/application/stats")).query({ period: transformPeriod(period) }); }, performance: function performance(appId, _ref) { var aggInterval = _ref.aggInterval, from = _ref.from, to = _ref.to; var params = { aggregationPeriod: aggInterval.name, startEpochSecond: from / 1000, // the server expects timestamp in seconds, not in milliseconds endEpochSecond: to / 1000 }; return req.get("".concat(_urls["default"].appConsole(appId), "/performance")).query(params).then(function (points) { var result = {}; for (var i = from; i <= to; i += aggInterval.value) { result[i] = points[i / 1000]; // the server return timestamp in seconds, not in milliseconds } return result; }); }, concurrentRequests: function concurrentRequests(appId, _ref2) { var aggInterval = _ref2.aggInterval, from = _ref2.from, to = _ref2.to; var params = { aggregationPeriod: aggInterval.name, startEpochSecond: from / 1000, // the server expects timestamp in seconds, not in milliseconds endEpochSecond: to / 1000 }; return req.get("".concat(_urls["default"].appConsole(appId), "/concurrent-requests")).query(params).then(function (points) { var result = {}; for (var i = from; i <= to; i += aggInterval.value) { result[i] = points[i / 1000]; // the server return timestamp in seconds, not in milliseconds } return result; }); }, apiCalls: function apiCalls(appId, _ref3) { var clientTypes = _ref3.clientTypes, _ref3$columns = _ref3.columns, columns = _ref3$columns === void 0 ? {} : _ref3$columns, period = _ref3.period, from = _ref3.from, to = _ref3.to; period = period.toUpperCase(); var params = _objectSpread(_objectSpread({}, buildClientTypeSegmentsQuery(clientTypes)), {}, { 'withServiceName': columns.services, 'withMethodName': columns.methods, 'withSuccessCallCount': true, //TODO: the server always return SuccessCallCount values 'withErrorCount': true, //TODO: the server always return ErrorCount values period: period }); if (period === 'CUSTOM') { params.dateFrom = from; params.dateTo = to; } return req.get("".concat(_urls["default"].appConsole(appId), "/apicalls")).query(params); }, messages: function messages(appId, _ref4) { var clientTypes = _ref4.clientTypes, messagingTypes = _ref4.messagingTypes, period = _ref4.period, from = _ref4.from, to = _ref4.to; period = period.toUpperCase(); var params = _objectSpread(_objectSpread(_objectSpread({}, buildClientTypeSegmentsQuery(clientTypes)), buildMessagingTypeSegmentsQuery(messagingTypes)), {}, { period: period }); if (period === 'CUSTOM') { params.dateFrom = from; params.dateTo = to; } return req.get("".concat(_urls["default"].appConsole(appId), "/messaging")).query(params); }, users: function users(appId, _ref5) { var period = _ref5.period, from = _ref5.from, to = _ref5.to; period = period.toUpperCase(); var params = { withActiveUsers: true, //TODO: the server always return ActiveUsers values withNewUsers: true, //TODO: the server always return NewUsers values withRegisteredUsers: true, //TODO: the server always return RegisteredUsers values withReturningUsers: true, //TODO: the server always return ReturningUsers values period: period }; if (period === 'CUSTOM') { params.dateFrom = from; params.dateTo = to; } return req.get("".concat(_urls["default"].appConsole(appId), "/userstats")).query(params); }, workers: function workers(appId, query) { return req.get("".concat(_urls["default"].appConsole(appId), "/workers")).query(query); } }; };