@webex/common
Version:
Common utilities for Cisco Webex
76 lines (72 loc) • 3.09 kB
JavaScript
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.createEventEnvelope = createEventEnvelope;
exports.ensureMyIdIsAvailable = ensureMyIdIsAvailable;
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
var _constants = require("./constants");
/*!
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
*/
/**
* Creates a 'webhook' envelope to wrap Webex events in
* @param {object} webex - sdk object
* @param {string} resource - resource to create an envelope for
* @returns {object} - Returns a promise of an event envelope object
*/
function createEventEnvelope(webex, resource) {
return ensureMyIdIsAvailable(webex).then(function () {
return _promise.default.resolve({
createdBy: webex.internal.me.id,
orgId: webex.internal.me.orgId,
resource: resource,
// id -- webhook id concept does not correlate to SDK socket event
// name -- webhook name concept does not correlate to SDK socket event
// targetUrl -- targetUrl concept does not correlate to SDK socket event
// secret -- secret concept does not correlate to SDK socket event
ownedBy: _constants.SDK_EVENT.EXTERNAL.OWNER.CREATOR,
status: _constants.SDK_EVENT.EXTERNAL.STATUS.ACTIVE,
created: new Date().toISOString(),
data: {}
});
}).catch(function (e) {
_promise.default.reject(new Error("Unable to get person info for ".concat(resource, " event envelope: ").concat(e.message)));
});
}
/**
* Stores SDK users info in the sdk object if it doesn't already exist
* @param {object} webex - sdk object
* @returns {Promise} - Returns a promise that user info will be available
*/
function ensureMyIdIsAvailable(_x) {
return _ensureMyIdIsAvailable.apply(this, arguments);
}
function _ensureMyIdIsAvailable() {
_ensureMyIdIsAvailable = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(webex) {
return _regenerator.default.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
if (!('me' in webex.internal)) {
_context.next = 2;
break;
}
return _context.abrupt("return", _promise.default.resolve());
case 2:
return _context.abrupt("return", webex.people.get('me').then(function (person) {
webex.internal.me = person;
return _promise.default.resolve();
}));
case 3:
case "end":
return _context.stop();
}
}, _callee);
}));
return _ensureMyIdIsAvailable.apply(this, arguments);
}
//# sourceMappingURL=event-envelope.js.map
;