backendless-console-sdk
Version:
Backendless Console SDK for Node.js and browser
139 lines (132 loc) • 6.64 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
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 _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; })(); } /* eslint-disable max-len */
var normalizeValue = function normalizeValue(value) {
return typeof value === 'string' ? value : JSON.stringify(value);
};
var normalizeResponse = function normalizeResponse(res) {
return Object.keys(res).map(function (key) {
var _res$key = res[key],
expireAt = _res$key.expireAt,
value = _res$key.value;
return {
objectId: key,
value: normalizeValue(value),
expireAt: expireAt,
key: key
};
});
};
var Cache = /*#__PURE__*/function (_BaseService) {
(0, _inherits2["default"])(Cache, _BaseService);
var _super = _createSuper(Cache);
function Cache(req) {
var _this;
(0, _classCallCheck2["default"])(this, Cache);
_this = _super.call(this, req);
_this.serviceName = 'cache';
return _this;
}
/**
* @typedef {Object} getCacheData__params
* @paramDef {"type":"number","label":"Page Size","name":"pageSize","description":"Number of cache entries to return per page","required":false}
* @paramDef {"type":"number","label":"Offset","name":"offset","description":"Number of cache entries to skip for pagination","required":false}
*/
/**
* @aiToolName Get Cache Data
* @category Data
* @description Retrieves cache entries with pagination support and returns both data and total count.
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @paramDef {"type":"getCacheData__params","name":"params","label":"Pagination Parameters","description":"Optional parameters for pagination","required":true}
* @sampleResult {"data":[{"objectId":"user:123","value":"John Doe","expireAt":1700000000000,"key":"user:123"}],"totalRows":25}
*/
(0, _createClass2["default"])(Cache, [{
key: "get",
value: function get(appId, params) {
var _ref = params || {},
pageSize = _ref.pageSize,
offset = _ref.offset;
return Promise.all([this.req.get(_urls["default"].cache(appId)).query({
pagesize: pageSize,
offset: offset
}).then(normalizeResponse), this.count(appId)]).then(function (_ref2) {
var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
data = _ref3[0],
totalRows = _ref3[1];
return {
data: data,
totalRows: totalRows
};
});
}
/**
* @aiToolName Count Cache Entries
* @category Data
* @description Returns the total number of cache entries in the application.
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @sampleResult 42
*/
}, {
key: "count",
value: function count(appId) {
return this.req.get("".concat(_urls["default"].cache(appId), "/count"));
}
/**
* @typedef {Object} updateCacheEntry__record
* @paramDef {"type":"string","label":"Key","name":"key","description":"The cache key (either key or objectId is required)","required":false}
* @paramDef {"type":"string","label":"Object ID","name":"objectId","description":"Alternative identifier for the cache entry","required":false}
* @paramDef {"type":"any","label":"Value","name":"value","description":"The value to be cached (can be any type, will be JSON stringified)","required":true}
* @paramDef {"type":"string","label":"Expire At","name":"expireAt","description":"ISO date string when the cache entry should expire","required":false}
*/
/**
* @aiToolName Update Cache Entry
* @category Data
* @description Updates or creates a cache entry with the specified key, value, and expiration time.
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @paramDef {"type":"updateCacheEntry__record","name":"record","label":"Cache Record","description":"The cache entry data","required":true}
* @sampleResult ""
*/
}, {
key: "update",
value: function update(appId, record) {
var key = record.key,
value = record.value,
expireAt = record.expireAt,
objectId = record.objectId;
var id = key || objectId;
return this.req.put(_urls["default"].cache(appId, id), JSON.stringify(value)).query({
expireAt: expireAt
}).type('application/json');
}
/**
* @aiToolName Remove Cache Entry
* @category Data
* @description Permanently removes a cache entry by its key.
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @paramDef {"type":"string","name":"key","label":"Cache Key","description":"The key of the cache entry to be removed","required":true}
* @sampleResult ""
*/
}, {
key: "remove",
value: function remove(appId, key) {
return this.req["delete"](_urls["default"].cache(appId, key));
}
}]);
return Cache;
}(_baseService["default"]);
var _default = exports["default"] = function _default(req) {
return Cache.create(req);
};