backendless-console-sdk
Version:
Backendless Console SDK for Node.js and browser
157 lines (149 loc) • 9.23 kB
JavaScript
"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);
};