UNPKG

backendless-console-sdk

Version:

Backendless Console SDK for Node.js and browser

157 lines (149 loc) 9.23 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _urls = _interopRequireDefault(require("./urls")); var _baseService = _interopRequireDefault(require("./base/base-service")); function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2["default"])(t); if (r) { var s = (0, _getPrototypeOf2["default"])(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2["default"])(this, e); }; } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } 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; } /* eslint-disable max-len */ var DEFAULT_NAME_PATTERN = '*'; var normalizeResponse = function normalizeResponse(item) { return _objectSpread(_objectSpread({}, item), {}, { objectId: item.name }); }; var AtomicCounters = /*#__PURE__*/function (_BaseService) { (0, _inherits2["default"])(AtomicCounters, _BaseService); var _super = _createSuper(AtomicCounters); function AtomicCounters(req) { var _this; (0, _classCallCheck2["default"])(this, AtomicCounters); _this = _super.call(this, req); _this.serviceName = 'counters'; return _this; } /** * @typedef {Object} getAtomicCounters__params * @paramDef {"type":"number","label":"Page Size","name":"pageSize","description":"Number of counters to return per page","required":false} * @paramDef {"type":"number","label":"Offset","name":"offset","description":"Number of counters to skip for pagination","required":false} * @paramDef {"type":"string","label":"Sort Field","name":"sortField","description":"Field name to sort counters by","required":false} * @paramDef {"type":"string","label":"Sort Direction","name":"sortDir","description":"Direction of sorting, either ASC or DESC","required":false} * @paramDef {"type":"string","label":"Pattern","name":"pattern","description":"Filter counters by name pattern (wildcards supported)","required":false} */ /** * @aiToolName Get Atomic Counters * @category Counters * @description Retrieves a list of atomic counters with pagination and sorting support. * @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true} * @paramDef {"type":"getAtomicCounters__params","name":"params","label":"Query Parameters","description":"Optional pagination, sorting, and filtering parameters","required":true} * @sampleResult {"data":[{"objectId":"counterA","name":"counterA","value":10},{"objectId":"counterB","name":"counterB","value":25}],"totalRows":2} * */ (0, _createClass2["default"])(AtomicCounters, [{ key: "get", value: function get(appId) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var pageSize = params.pageSize, offset = params.offset, sortField = params.sortField, sortDir = params.sortDir, _params$pattern = params.pattern, pattern = _params$pattern === void 0 ? DEFAULT_NAME_PATTERN : _params$pattern; return this.req.get(_urls["default"].atomicCounters(appId)).query({ pageSize: pageSize, offset: offset, sortField: sortField, sortDir: sortDir, pattern: pattern }); } /** * @aiToolName List Atomic Counter Names * @category Counters * @description Retrieves a list of all atomic counter names matching a specified pattern. * @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true} * @paramDef {"type":"string","name":"pattern","label":"Pattern","description":"Filter counters by name pattern (wildcards supported)","required":false} */ }, { key: "listNames", value: function listNames(appId) { var pattern = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_NAME_PATTERN; return this.req.get("".concat(_urls["default"].atomicCounters(appId), "/").concat(pattern, "/list-names")); } /** * @aiToolName List Atomic Counters by Names * @category Counters * @description Retrieves atomic counters by a list of specific names. * @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true} * @paramDef {"type":"array","name":"names","label":"Counter Names","description":"Array of atomic counter names to retrieve","required":true} */ }, { key: "listCounters", value: function listCounters(appId, names) { return this.req.post("".concat(_urls["default"].atomicCounters(appId), "/list-by-names"), names); } /** * @aiToolName Create Atomic Counter * @category Counters * @methodPath atomicCounters.create * @description Creates a new atomic counter with the specified initial value. * @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true} * @paramDef {"type":"string","name":"name","label":"Counter Name","description":"The name of the atomic counter","required":true} * @paramDef {"type":"number","name":"value","label":"Initial Value","description":"Initial value for the counter","required":true} * @sampleResult {"name":"counterA","value":10} */ }, { key: "create", value: function create(appId, name, value) { return this.req.post("".concat(_urls["default"].atomicCounters(appId), "/").concat(encodeURIComponent(name)), { value: value }).then(normalizeResponse); } /** * @aiToolName Update Atomic Counter * @category Counters * @methodPath atomicCounters.update * @description Updates the value of an atomic counter. * @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true} * @paramDef {"type":"string","name":"name","label":"Counter Name","description":"The name of the atomic counter to update","required":true} * @paramDef {"type":"number","name":"currentValue","label":"Current Value","description":"The expected current value of the counter (used for optimistic concurrency)","required":true} * @paramDef {"type":"number","name":"newValue","label":"New Value","description":"The new value to set for the counter","required":true} * @sampleResult "" */ }, { key: "update", value: function update(appId, name, currentValue, newValue) { return this.req.put("".concat(_urls["default"].atomicCounters(appId), "/").concat(encodeURIComponent(name)), { currentValue: currentValue, newValue: newValue }); } /** * @aiToolName Remove Atomic Counter * @category Counters * @methodPath atomicCounters.remove * @description Permanently removes an atomic counter by its name. * @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true} * @paramDef {"type":"string","name":"name","label":"Counter Name","description":"The name of the atomic counter to be removed","required":true} * @sampleResult "" */ }, { key: "remove", value: function remove(appId, name) { return this.req["delete"]("".concat(_urls["default"].atomicCounters(appId), "/").concat(encodeURIComponent(name))); } }]); return AtomicCounters; }(_baseService["default"]); var _default = exports["default"] = function _default(req) { return AtomicCounters.create(req); };