@webex/internal-plugin-dss 2.60.1-next.9 → 2.60.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.js +17 -14
- package/dist/constants.js.map +1 -1
- package/dist/dss.js +42 -172
- package/dist/dss.js.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/types.js +8 -7
- package/dist/types.js.map +1 -1
- package/package.json +15 -18
- package/src/constants.ts +0 -5
- package/src/dss.ts +33 -162
- package/src/index.ts +1 -2
- package/src/types.ts +2 -23
- package/test/unit/spec/dss.ts +67 -955
- package/dist/config.js +0 -35
- package/dist/config.js.map +0 -1
- package/dist/dss-batcher.js +0 -138
- package/dist/dss-batcher.js.map +0 -1
- package/dist/dss-errors.js +0 -49
- package/dist/dss-errors.js.map +0 -1
- package/src/config.ts +0 -31
- package/src/dss-batcher.ts +0 -129
- package/src/dss-errors.ts +0 -36
- package/test/unit/spec/dss-batcher.ts +0 -139
package/dist/config.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
_Object$defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
/*!
|
|
9
|
-
* Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.
|
|
10
|
-
*/
|
|
11
|
-
var _default = exports.default = {
|
|
12
|
-
dss: {
|
|
13
|
-
/**
|
|
14
|
-
* Timeout before DSS request fails, in milliseconds.
|
|
15
|
-
* @type {Number}
|
|
16
|
-
*/
|
|
17
|
-
requestTimeout: 6000,
|
|
18
|
-
/**
|
|
19
|
-
* Debounce wait (ms) before sending a dss request (gap between lookups that will trigger a request)
|
|
20
|
-
* @type {Number}
|
|
21
|
-
*/
|
|
22
|
-
batcherWait: 50,
|
|
23
|
-
/**
|
|
24
|
-
* Maximum queue size before sending a dss request
|
|
25
|
-
* @type {Number}
|
|
26
|
-
*/
|
|
27
|
-
batcherMaxCalls: 50,
|
|
28
|
-
/**
|
|
29
|
-
* Debounce max wait (ms) before sending a dss request (time from first lookup that will trigger a request)
|
|
30
|
-
* @type {Number}
|
|
31
|
-
*/
|
|
32
|
-
batcherMaxWait: 150
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_default","exports","default","dss","requestTimeout","batcherWait","batcherMaxCalls","batcherMaxWait"],"sources":["config.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n dss: {\n /**\n * Timeout before DSS request fails, in milliseconds.\n * @type {Number}\n */\n requestTimeout: 6000,\n\n /**\n * Debounce wait (ms) before sending a dss request (gap between lookups that will trigger a request)\n * @type {Number}\n */\n batcherWait: 50,\n\n /**\n * Maximum queue size before sending a dss request\n * @type {Number}\n */\n batcherMaxCalls: 50,\n\n /**\n * Debounce max wait (ms) before sending a dss request (time from first lookup that will trigger a request)\n * @type {Number}\n */\n batcherMaxWait: 150,\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAIe;EACbC,GAAG,EAAE;IACH;AACJ;AACA;AACA;IACIC,cAAc,EAAE,IAAI;IAEpB;AACJ;AACA;AACA;IACIC,WAAW,EAAE,EAAE;IAEf;AACJ;AACA;AACA;IACIC,eAAe,EAAE,EAAE;IAEnB;AACJ;AACA;AACA;IACIC,cAAc,EAAE;EAClB;AACF,CAAC"}
|
package/dist/dss-batcher.js
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
-
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
10
|
-
var _webexCore = require("@webex/webex-core");
|
|
11
|
-
/*!
|
|
12
|
-
* Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.
|
|
13
|
-
*/
|
|
14
|
-
/* eslint-disable no-underscore-dangle */
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @class
|
|
18
|
-
*/
|
|
19
|
-
var DssBatcher = _webexCore.Batcher.extend({
|
|
20
|
-
namespace: 'DSS',
|
|
21
|
-
props: {
|
|
22
|
-
resource: {
|
|
23
|
-
type: 'string',
|
|
24
|
-
required: true,
|
|
25
|
-
setOnce: true,
|
|
26
|
-
allowNull: false
|
|
27
|
-
},
|
|
28
|
-
dataPath: {
|
|
29
|
-
type: 'string',
|
|
30
|
-
required: true,
|
|
31
|
-
setOnce: true,
|
|
32
|
-
allowNull: false
|
|
33
|
-
},
|
|
34
|
-
entitiesFoundPath: {
|
|
35
|
-
type: 'string',
|
|
36
|
-
required: true,
|
|
37
|
-
setOnce: true,
|
|
38
|
-
allowNull: false
|
|
39
|
-
},
|
|
40
|
-
entitiesNotFoundPath: {
|
|
41
|
-
type: 'string',
|
|
42
|
-
required: true,
|
|
43
|
-
setOnce: true,
|
|
44
|
-
allowNull: false
|
|
45
|
-
},
|
|
46
|
-
requestKey: {
|
|
47
|
-
type: 'string',
|
|
48
|
-
required: true,
|
|
49
|
-
setOnce: true,
|
|
50
|
-
allowNull: false
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
/**
|
|
54
|
-
* Submits the DSS request
|
|
55
|
-
* @param {Object} payload
|
|
56
|
-
* @returns {Promise<Array>}
|
|
57
|
-
*/
|
|
58
|
-
submitHttpRequest: function submitHttpRequest(payload) {
|
|
59
|
-
return this.parent._request({
|
|
60
|
-
dataPath: this.dataPath,
|
|
61
|
-
foundPath: this.entitiesFoundPath,
|
|
62
|
-
notFoundPath: this.entitiesNotFoundPath,
|
|
63
|
-
resource: this.resource,
|
|
64
|
-
params: {
|
|
65
|
-
lookupValues: payload
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
},
|
|
69
|
-
/**
|
|
70
|
-
* Actions taken when the http request returns a success
|
|
71
|
-
* @param {Promise<Array>} res
|
|
72
|
-
* @returns {Promise<undefined>}
|
|
73
|
-
*/
|
|
74
|
-
handleHttpSuccess: function handleHttpSuccess(res) {
|
|
75
|
-
var _this = this;
|
|
76
|
-
var successItems = res.foundArray.map(function (requestValue, index) {
|
|
77
|
-
return {
|
|
78
|
-
requestValue: requestValue,
|
|
79
|
-
entity: res.resultArray[index]
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
var failureItems = res.notFoundArray.map(function (requestValue) {
|
|
83
|
-
return {
|
|
84
|
-
requestValue: requestValue,
|
|
85
|
-
entity: null
|
|
86
|
-
};
|
|
87
|
-
});
|
|
88
|
-
return _promise.default.all(successItems.concat(failureItems).map(function (item) {
|
|
89
|
-
return _this.acceptItem(item);
|
|
90
|
-
}));
|
|
91
|
-
},
|
|
92
|
-
/**
|
|
93
|
-
* Checks if the item was found
|
|
94
|
-
* @param {Object} item
|
|
95
|
-
* @returns {Promise<Boolean>}
|
|
96
|
-
*/
|
|
97
|
-
didItemFail: function didItemFail(item) {
|
|
98
|
-
return _promise.default.resolve(item.entity === null);
|
|
99
|
-
},
|
|
100
|
-
/**
|
|
101
|
-
* Finds the Defer for the specified item and resolves its promise with null
|
|
102
|
-
* @param {Object} item
|
|
103
|
-
* @returns {Promise<undefined>}
|
|
104
|
-
*/
|
|
105
|
-
handleItemFailure: function handleItemFailure(item) {
|
|
106
|
-
return this.getDeferredForResponse(item).then(function (defer) {
|
|
107
|
-
defer.resolve(null);
|
|
108
|
-
});
|
|
109
|
-
},
|
|
110
|
-
/**
|
|
111
|
-
* Finds the Defer for the specified item and resolves its promise
|
|
112
|
-
* @param {Object} item
|
|
113
|
-
* @returns {Promise<undefined>}
|
|
114
|
-
*/
|
|
115
|
-
handleItemSuccess: function handleItemSuccess(item) {
|
|
116
|
-
return this.getDeferredForResponse(item).then(function (defer) {
|
|
117
|
-
defer.resolve(item.entity);
|
|
118
|
-
});
|
|
119
|
-
},
|
|
120
|
-
/**
|
|
121
|
-
* Returns a promise with the unique key for the item
|
|
122
|
-
* @param {Object} item
|
|
123
|
-
* @returns {Promise}
|
|
124
|
-
*/
|
|
125
|
-
fingerprintRequest: function fingerprintRequest(item) {
|
|
126
|
-
return _promise.default.resolve(item);
|
|
127
|
-
},
|
|
128
|
-
/**
|
|
129
|
-
* Returns a promise with the unique key for the item
|
|
130
|
-
* @param {Object} item
|
|
131
|
-
* @returns {Promise}
|
|
132
|
-
*/
|
|
133
|
-
fingerprintResponse: function fingerprintResponse(item) {
|
|
134
|
-
return _promise.default.resolve(item.requestValue);
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
var _default = exports.default = DssBatcher;
|
|
138
|
-
//# sourceMappingURL=dss-batcher.js.map
|
package/dist/dss-batcher.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","DssBatcher","Batcher","extend","namespace","props","resource","type","required","setOnce","allowNull","dataPath","entitiesFoundPath","entitiesNotFoundPath","requestKey","submitHttpRequest","payload","parent","_request","foundPath","notFoundPath","params","lookupValues","handleHttpSuccess","res","_this","successItems","foundArray","map","requestValue","index","entity","resultArray","failureItems","notFoundArray","_promise","default","all","concat","item","acceptItem","didItemFail","resolve","handleItemFailure","getDeferredForResponse","then","defer","handleItemSuccess","fingerprintRequest","fingerprintResponse","_default","exports"],"sources":["dss-batcher.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.\n */\n/* eslint-disable no-underscore-dangle */\n\nimport {Batcher} from '@webex/webex-core';\n\n/**\n * @class\n */\nconst DssBatcher = Batcher.extend({\n namespace: 'DSS',\n\n props: {\n resource: {\n type: 'string',\n required: true,\n setOnce: true,\n allowNull: false,\n },\n dataPath: {\n type: 'string',\n required: true,\n setOnce: true,\n allowNull: false,\n },\n entitiesFoundPath: {\n type: 'string',\n required: true,\n setOnce: true,\n allowNull: false,\n },\n entitiesNotFoundPath: {\n type: 'string',\n required: true,\n setOnce: true,\n allowNull: false,\n },\n requestKey: {\n type: 'string',\n required: true,\n setOnce: true,\n allowNull: false,\n },\n },\n\n /**\n * Submits the DSS request\n * @param {Object} payload\n * @returns {Promise<Array>}\n */\n submitHttpRequest(payload: unknown) {\n return this.parent._request({\n dataPath: this.dataPath,\n foundPath: this.entitiesFoundPath,\n notFoundPath: this.entitiesNotFoundPath,\n resource: this.resource,\n params: {\n lookupValues: payload,\n },\n });\n },\n\n /**\n * Actions taken when the http request returns a success\n * @param {Promise<Array>} res\n * @returns {Promise<undefined>}\n */\n handleHttpSuccess(res) {\n const successItems = res.foundArray.map((requestValue, index) => ({\n requestValue,\n entity: res.resultArray[index],\n }));\n const failureItems = res.notFoundArray.map((requestValue) => ({requestValue, entity: null}));\n\n return Promise.all(successItems.concat(failureItems).map((item) => this.acceptItem(item)));\n },\n\n /**\n * Checks if the item was found\n * @param {Object} item\n * @returns {Promise<Boolean>}\n */\n didItemFail(item) {\n return Promise.resolve(item.entity === null);\n },\n\n /**\n * Finds the Defer for the specified item and resolves its promise with null\n * @param {Object} item\n * @returns {Promise<undefined>}\n */\n handleItemFailure(item) {\n return this.getDeferredForResponse(item).then((defer) => {\n defer.resolve(null);\n });\n },\n\n /**\n * Finds the Defer for the specified item and resolves its promise\n * @param {Object} item\n * @returns {Promise<undefined>}\n */\n handleItemSuccess(item) {\n return this.getDeferredForResponse(item).then((defer) => {\n defer.resolve(item.entity);\n });\n },\n\n /**\n * Returns a promise with the unique key for the item\n * @param {Object} item\n * @returns {Promise}\n */\n fingerprintRequest(item) {\n return Promise.resolve(item);\n },\n\n /**\n * Returns a promise with the unique key for the item\n * @param {Object} item\n * @returns {Promise}\n */\n fingerprintResponse(item) {\n return Promise.resolve(item.requestValue);\n },\n});\n\nexport default DssBatcher;\n"],"mappings":"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"}
|
package/dist/dss-errors.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
5
|
-
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
_Object$defineProperty(exports, "__esModule", {
|
|
7
|
-
value: true
|
|
8
|
-
});
|
|
9
|
-
exports.DssTimeoutError = void 0;
|
|
10
|
-
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
11
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
13
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
15
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
16
|
-
var _common = require("@webex/common");
|
|
17
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
18
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
19
|
-
/**
|
|
20
|
-
* Thrown when an expected DSS respond is not received in a timely manner.
|
|
21
|
-
*/
|
|
22
|
-
var DssTimeoutError = exports.DssTimeoutError = /*#__PURE__*/function (_Exception) {
|
|
23
|
-
(0, _inherits2.default)(DssTimeoutError, _Exception);
|
|
24
|
-
var _super = _createSuper(DssTimeoutError);
|
|
25
|
-
/**
|
|
26
|
-
* Construct DssTimeoutError
|
|
27
|
-
* @param {DssTimeoutErrorParams} details
|
|
28
|
-
*/
|
|
29
|
-
// eslint-disable-next-line no-useless-constructor
|
|
30
|
-
function DssTimeoutError(details) {
|
|
31
|
-
(0, _classCallCheck2.default)(this, DssTimeoutError);
|
|
32
|
-
return _super.call(this, details);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Parse Error details
|
|
37
|
-
*
|
|
38
|
-
* @param {DssTimeoutErrorParams} details
|
|
39
|
-
* @returns {string}
|
|
40
|
-
*/
|
|
41
|
-
(0, _createClass2.default)(DssTimeoutError, [{
|
|
42
|
-
key: "parse",
|
|
43
|
-
value: function parse(details) {
|
|
44
|
-
return "The DSS did not respond within ".concat(details.timeout, " ms.") + "\n Request Id: ".concat(details.requestId) + "\n Resource: ".concat(details.resource) + "\n Params: ".concat((0, _stringify.default)(details.params));
|
|
45
|
-
}
|
|
46
|
-
}]);
|
|
47
|
-
return DssTimeoutError;
|
|
48
|
-
}(_common.Exception);
|
|
49
|
-
//# sourceMappingURL=dss-errors.js.map
|
package/dist/dss-errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","DssTimeoutError","exports","_Exception","_inherits2","_super","details","_classCallCheck2","_createClass2","key","value","parse","concat","timeout","requestId","resource","_stringify","params","Exception"],"sources":["dss-errors.ts"],"sourcesContent":["import {Exception} from '@webex/common';\nimport {RequestOptions} from './types';\n\ninterface DssTimeoutErrorParams extends Required<Pick<RequestOptions, 'resource' | 'params'>> {\n requestId: string;\n timeout: number;\n}\n\n/**\n * Thrown when an expected DSS respond is not received in a timely manner.\n */\nexport class DssTimeoutError extends Exception {\n /**\n * Construct DssTimeoutError\n * @param {DssTimeoutErrorParams} details\n */\n // eslint-disable-next-line no-useless-constructor\n constructor(details: DssTimeoutErrorParams) {\n super(details);\n }\n\n /**\n * Parse Error details\n *\n * @param {DssTimeoutErrorParams} details\n * @returns {string}\n */\n parse(details: DssTimeoutErrorParams) {\n return (\n `The DSS did not respond within ${details.timeout} ms.` +\n `\\n Request Id: ${details.requestId}` +\n `\\n Resource: ${details.resource}` +\n `\\n Params: ${JSON.stringify(details.params)}`\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAwC,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAQxC;AACA;AACA;AAFA,IAGaC,eAAe,GAAAC,OAAA,CAAAD,eAAA,0BAAAE,UAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,eAAA,EAAAE,UAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,eAAA;EAC1B;AACF;AACA;AACA;EACE;EACA,SAAAA,gBAAYK,OAA8B,EAAE;IAAA,IAAAC,gBAAA,CAAAtB,OAAA,QAAAgB,eAAA;IAAA,OAAAI,MAAA,CAAAN,IAAA,OACpCO,OAAO;EACf;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAE,aAAA,CAAAvB,OAAA,EAAAgB,eAAA;IAAAQ,GAAA;IAAAC,KAAA,EAMA,SAAAC,MAAML,OAA8B,EAAE;MACpC,OACE,kCAAAM,MAAA,CAAkCN,OAAO,CAACO,OAAO,8BAAAD,MAAA,CAC/BN,OAAO,CAACQ,SAAS,CAAE,mBAAAF,MAAA,CACrBN,OAAO,CAACS,QAAQ,CAAE,iBAAAH,MAAA,CACpB,IAAAI,UAAA,CAAA/B,OAAA,EAAeqB,OAAO,CAACW,MAAM,CAAC,CAAE;IAElD;EAAC;EAAA,OAAAhB,eAAA;AAAA,EAvBkCiB,iBAAS"}
|
package/src/config.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
dss: {
|
|
7
|
-
/**
|
|
8
|
-
* Timeout before DSS request fails, in milliseconds.
|
|
9
|
-
* @type {Number}
|
|
10
|
-
*/
|
|
11
|
-
requestTimeout: 6000,
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Debounce wait (ms) before sending a dss request (gap between lookups that will trigger a request)
|
|
15
|
-
* @type {Number}
|
|
16
|
-
*/
|
|
17
|
-
batcherWait: 50,
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Maximum queue size before sending a dss request
|
|
21
|
-
* @type {Number}
|
|
22
|
-
*/
|
|
23
|
-
batcherMaxCalls: 50,
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Debounce max wait (ms) before sending a dss request (time from first lookup that will trigger a request)
|
|
27
|
-
* @type {Number}
|
|
28
|
-
*/
|
|
29
|
-
batcherMaxWait: 150,
|
|
30
|
-
},
|
|
31
|
-
};
|
package/src/dss-batcher.ts
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
/* eslint-disable no-underscore-dangle */
|
|
5
|
-
|
|
6
|
-
import {Batcher} from '@webex/webex-core';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @class
|
|
10
|
-
*/
|
|
11
|
-
const DssBatcher = Batcher.extend({
|
|
12
|
-
namespace: 'DSS',
|
|
13
|
-
|
|
14
|
-
props: {
|
|
15
|
-
resource: {
|
|
16
|
-
type: 'string',
|
|
17
|
-
required: true,
|
|
18
|
-
setOnce: true,
|
|
19
|
-
allowNull: false,
|
|
20
|
-
},
|
|
21
|
-
dataPath: {
|
|
22
|
-
type: 'string',
|
|
23
|
-
required: true,
|
|
24
|
-
setOnce: true,
|
|
25
|
-
allowNull: false,
|
|
26
|
-
},
|
|
27
|
-
entitiesFoundPath: {
|
|
28
|
-
type: 'string',
|
|
29
|
-
required: true,
|
|
30
|
-
setOnce: true,
|
|
31
|
-
allowNull: false,
|
|
32
|
-
},
|
|
33
|
-
entitiesNotFoundPath: {
|
|
34
|
-
type: 'string',
|
|
35
|
-
required: true,
|
|
36
|
-
setOnce: true,
|
|
37
|
-
allowNull: false,
|
|
38
|
-
},
|
|
39
|
-
requestKey: {
|
|
40
|
-
type: 'string',
|
|
41
|
-
required: true,
|
|
42
|
-
setOnce: true,
|
|
43
|
-
allowNull: false,
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Submits the DSS request
|
|
49
|
-
* @param {Object} payload
|
|
50
|
-
* @returns {Promise<Array>}
|
|
51
|
-
*/
|
|
52
|
-
submitHttpRequest(payload: unknown) {
|
|
53
|
-
return this.parent._request({
|
|
54
|
-
dataPath: this.dataPath,
|
|
55
|
-
foundPath: this.entitiesFoundPath,
|
|
56
|
-
notFoundPath: this.entitiesNotFoundPath,
|
|
57
|
-
resource: this.resource,
|
|
58
|
-
params: {
|
|
59
|
-
lookupValues: payload,
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Actions taken when the http request returns a success
|
|
66
|
-
* @param {Promise<Array>} res
|
|
67
|
-
* @returns {Promise<undefined>}
|
|
68
|
-
*/
|
|
69
|
-
handleHttpSuccess(res) {
|
|
70
|
-
const successItems = res.foundArray.map((requestValue, index) => ({
|
|
71
|
-
requestValue,
|
|
72
|
-
entity: res.resultArray[index],
|
|
73
|
-
}));
|
|
74
|
-
const failureItems = res.notFoundArray.map((requestValue) => ({requestValue, entity: null}));
|
|
75
|
-
|
|
76
|
-
return Promise.all(successItems.concat(failureItems).map((item) => this.acceptItem(item)));
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Checks if the item was found
|
|
81
|
-
* @param {Object} item
|
|
82
|
-
* @returns {Promise<Boolean>}
|
|
83
|
-
*/
|
|
84
|
-
didItemFail(item) {
|
|
85
|
-
return Promise.resolve(item.entity === null);
|
|
86
|
-
},
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Finds the Defer for the specified item and resolves its promise with null
|
|
90
|
-
* @param {Object} item
|
|
91
|
-
* @returns {Promise<undefined>}
|
|
92
|
-
*/
|
|
93
|
-
handleItemFailure(item) {
|
|
94
|
-
return this.getDeferredForResponse(item).then((defer) => {
|
|
95
|
-
defer.resolve(null);
|
|
96
|
-
});
|
|
97
|
-
},
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Finds the Defer for the specified item and resolves its promise
|
|
101
|
-
* @param {Object} item
|
|
102
|
-
* @returns {Promise<undefined>}
|
|
103
|
-
*/
|
|
104
|
-
handleItemSuccess(item) {
|
|
105
|
-
return this.getDeferredForResponse(item).then((defer) => {
|
|
106
|
-
defer.resolve(item.entity);
|
|
107
|
-
});
|
|
108
|
-
},
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Returns a promise with the unique key for the item
|
|
112
|
-
* @param {Object} item
|
|
113
|
-
* @returns {Promise}
|
|
114
|
-
*/
|
|
115
|
-
fingerprintRequest(item) {
|
|
116
|
-
return Promise.resolve(item);
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Returns a promise with the unique key for the item
|
|
121
|
-
* @param {Object} item
|
|
122
|
-
* @returns {Promise}
|
|
123
|
-
*/
|
|
124
|
-
fingerprintResponse(item) {
|
|
125
|
-
return Promise.resolve(item.requestValue);
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
export default DssBatcher;
|
package/src/dss-errors.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import {Exception} from '@webex/common';
|
|
2
|
-
import {RequestOptions} from './types';
|
|
3
|
-
|
|
4
|
-
interface DssTimeoutErrorParams extends Required<Pick<RequestOptions, 'resource' | 'params'>> {
|
|
5
|
-
requestId: string;
|
|
6
|
-
timeout: number;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Thrown when an expected DSS respond is not received in a timely manner.
|
|
11
|
-
*/
|
|
12
|
-
export class DssTimeoutError extends Exception {
|
|
13
|
-
/**
|
|
14
|
-
* Construct DssTimeoutError
|
|
15
|
-
* @param {DssTimeoutErrorParams} details
|
|
16
|
-
*/
|
|
17
|
-
// eslint-disable-next-line no-useless-constructor
|
|
18
|
-
constructor(details: DssTimeoutErrorParams) {
|
|
19
|
-
super(details);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Parse Error details
|
|
24
|
-
*
|
|
25
|
-
* @param {DssTimeoutErrorParams} details
|
|
26
|
-
* @returns {string}
|
|
27
|
-
*/
|
|
28
|
-
parse(details: DssTimeoutErrorParams) {
|
|
29
|
-
return (
|
|
30
|
-
`The DSS did not respond within ${details.timeout} ms.` +
|
|
31
|
-
`\n Request Id: ${details.requestId}` +
|
|
32
|
-
`\n Resource: ${details.resource}` +
|
|
33
|
-
`\n Params: ${JSON.stringify(details.params)}`
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
/* eslint-disable no-underscore-dangle */
|
|
5
|
-
|
|
6
|
-
import {expect} from '@webex/test-helper-chai';
|
|
7
|
-
import sinon from 'sinon';
|
|
8
|
-
import DSS from '@webex/internal-plugin-dss';
|
|
9
|
-
import DssBatcher from '@webex/internal-plugin-dss/src/dss-batcher';
|
|
10
|
-
import MockWebex from '@webex/test-helper-mock-webex';
|
|
11
|
-
import {Defer} from '@webex/common';
|
|
12
|
-
|
|
13
|
-
describe('plugin-dss', () => {
|
|
14
|
-
describe('DssBatcher', () => {
|
|
15
|
-
let batcher;
|
|
16
|
-
let webex;
|
|
17
|
-
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
webex = MockWebex({
|
|
20
|
-
canAuthorize: false,
|
|
21
|
-
children: {
|
|
22
|
-
dss: DSS,
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
batcher = new DssBatcher({
|
|
26
|
-
resource: 'fakeResource',
|
|
27
|
-
dataPath: 'fakeDataPath',
|
|
28
|
-
entitiesFoundPath: 'fakeEntitiesFoundPath',
|
|
29
|
-
entitiesNotFoundPath: 'fakeEntitiesNotFoundPath',
|
|
30
|
-
requestKey: 'fakeRequestKey',
|
|
31
|
-
parent: webex.internal.dss,
|
|
32
|
-
});
|
|
33
|
-
webex.internal.dss.batchers.fakeResource = batcher;
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
describe('#submitHttpRequest', () => {
|
|
37
|
-
it('calls dss._request with expected params', async () => {
|
|
38
|
-
webex.internal.dss._request = sinon.stub().returns(Promise.resolve('some return value'));
|
|
39
|
-
|
|
40
|
-
const result = await batcher.submitHttpRequest(['id1']);
|
|
41
|
-
|
|
42
|
-
expect(webex.internal.dss._request.getCall(0).args).to.deep.equal([
|
|
43
|
-
{
|
|
44
|
-
dataPath: 'fakeDataPath',
|
|
45
|
-
foundPath: 'fakeEntitiesFoundPath',
|
|
46
|
-
notFoundPath: 'fakeEntitiesNotFoundPath',
|
|
47
|
-
resource: 'fakeResource',
|
|
48
|
-
params: {
|
|
49
|
-
lookupValues: ['id1'],
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
]);
|
|
53
|
-
expect(result).to.equal('some return value');
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
describe('#handleHttpSuccess', () => {
|
|
58
|
-
it('calls acceptItem on each found or not found entity', async () => {
|
|
59
|
-
batcher.acceptItem = sinon.stub().returns(Promise.resolve(undefined));
|
|
60
|
-
const res = {
|
|
61
|
-
resultArray: ['item1', 'item2'],
|
|
62
|
-
foundArray: ['id1', 'id2'],
|
|
63
|
-
notFoundArray: ['id3', 'id4'],
|
|
64
|
-
};
|
|
65
|
-
const result = await batcher.handleHttpSuccess(res);
|
|
66
|
-
|
|
67
|
-
expect(batcher.acceptItem.getCalls().map((call) => call.args)).to.deep.equal([
|
|
68
|
-
[{requestValue: 'id1', entity: 'item1'}],
|
|
69
|
-
[{requestValue: 'id2', entity: 'item2'}],
|
|
70
|
-
[{requestValue: 'id3', entity: null}],
|
|
71
|
-
[{requestValue: 'id4', entity: null}],
|
|
72
|
-
]);
|
|
73
|
-
expect(result).to.deep.equal([undefined, undefined, undefined, undefined]);
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
describe('#didItemFail', () => {
|
|
78
|
-
it('returns true if item.entity is null', async () => {
|
|
79
|
-
const result = await batcher.didItemFail({entity: null});
|
|
80
|
-
|
|
81
|
-
expect(result).to.be.true;
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
it('returns true if item.entity is not null', async () => {
|
|
85
|
-
const result = await batcher.didItemFail({entity: 'something'});
|
|
86
|
-
|
|
87
|
-
expect(result).to.be.false;
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
describe('#handleItemFailure', () => {
|
|
92
|
-
it('resolves defer for item with null', async () => {
|
|
93
|
-
const defer = new Defer();
|
|
94
|
-
|
|
95
|
-
batcher.getDeferredForResponse = sinon.stub().returns(Promise.resolve(defer));
|
|
96
|
-
const result = await batcher.handleItemFailure({requestValue: 'some request'});
|
|
97
|
-
const deferValue = await defer.promise;
|
|
98
|
-
|
|
99
|
-
expect(batcher.getDeferredForResponse.getCall(0).args).to.deep.equal([
|
|
100
|
-
{requestValue: 'some request'},
|
|
101
|
-
]);
|
|
102
|
-
expect(result).to.be.undefined;
|
|
103
|
-
expect(deferValue).to.be.null;
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
describe('#handleItemSuccess', () => {
|
|
108
|
-
it('resolves defer for item with item.entity', async () => {
|
|
109
|
-
const defer = new Defer();
|
|
110
|
-
|
|
111
|
-
batcher.getDeferredForResponse = sinon.stub().returns(Promise.resolve(defer));
|
|
112
|
-
const result = await batcher.handleItemSuccess({entity: 'some entity'});
|
|
113
|
-
const deferValue = await defer.promise;
|
|
114
|
-
|
|
115
|
-
expect(batcher.getDeferredForResponse.getCall(0).args).to.deep.equal([
|
|
116
|
-
{entity: 'some entity'},
|
|
117
|
-
]);
|
|
118
|
-
expect(result).to.be.undefined;
|
|
119
|
-
expect(deferValue).to.equal('some entity');
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
describe('#fingerprintRequest', () => {
|
|
124
|
-
it('returns request', async () => {
|
|
125
|
-
const result = await batcher.fingerprintRequest('some request');
|
|
126
|
-
|
|
127
|
-
expect(result).to.equal('some request');
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
describe('#fingerprintResponse', () => {
|
|
132
|
-
it('returns response requestValue', async () => {
|
|
133
|
-
const result = await batcher.fingerprintResponse({requestValue: 'some request'});
|
|
134
|
-
|
|
135
|
-
expect(result).to.equal('some request');
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
});
|