UNPKG

backendless-console-sdk

Version:

Backendless Console SDK for Node.js and browser

153 lines (148 loc) 6.37 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(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 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 = 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); } }; }; exports["default"] = _default;