sugo-hub
Version:
Hub server of SUGOS
176 lines (146 loc) • 9.16 kB
JavaScript
/**
* Browser side agent for spot
* @function agent
*/
;
var _Object$assign = require("@babel/runtime/core-js/object/assign");
var _getIterator = require("@babel/runtime/core-js/get-iterator");
var _regeneratorRuntime = require("@babel/runtime/regenerator");
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
var _classCallCheck = require("@babel/runtime/helpers/classCallCheck");
var _createClass = require("@babel/runtime/helpers/createClass");
var brequest = require('brequest');
var _require = require('sugo-constants'),
HubUrls = _require.HubUrls;
var ACTOR_URL = HubUrls.ACTOR_URL,
CALLER_URL = HubUrls.CALLER_URL,
OBSERVER_URL = HubUrls.OBSERVER_URL;
var SugoCloudAgent =
/*#__PURE__*/
function () {
function SugoCloudAgent() {
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
_classCallCheck(this, SugoCloudAgent);
this.baseUrl = url;
}
_createClass(SugoCloudAgent, [{
key: "get",
value: function get(path, query) {
var url = this.baseUrl ? this.baseUrl + path : path;
return brequest.get(url, query);
}
/**
* List actors
* @returns {Promise}
*/
}, {
key: "actors",
value: function () {
var _actors = _asyncToGenerator(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee() {
var _ref, body, data, included, includedDict;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.get(ACTOR_URL, {});
case 2:
_ref = _context.sent;
body = _ref.body;
data = body.data, included = body.included;
includedDict = this._includedToDict(included);
return _context.abrupt("return", data.map(function (data) {
return includedDict[data.type][data.id];
}));
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
return function actors() {
return _actors.apply(this, arguments);
};
}()
/**
* List callers
* @returns {Promise}
*/
}, {
key: "callers",
value: function () {
var _callers = _asyncToGenerator(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee2() {
var _ref2, body, data, included, includedDict;
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return this.get(CALLER_URL, {});
case 2:
_ref2 = _context2.sent;
body = _ref2.body;
data = body.data, included = body.included;
includedDict = this._includedToDict(included);
return _context2.abrupt("return", data.map(function (data) {
return includedDict[data.type][data.id];
}));
case 7:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
return function callers() {
return _callers.apply(this, arguments);
};
}()
}, {
key: "_includedToDict",
value: function _includedToDict(included) {
var dict = {};
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = _getIterator(included), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var _entry = _step.value;
var type = _entry.type,
id = _entry.id;
dict[type] = dict[type] || {};
dict[type][id] = _entry.attributes;
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return dict;
}
}]);
return SugoCloudAgent;
}();
/** @lends agent */
function agent(url) {
return new SugoCloudAgent(url);
}
_Object$assign(agent, {
SugoCloudAgent: SugoCloudAgent
});
module.exports = agent;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFnZW50LmpzIl0sIm5hbWVzIjpbImJyZXF1ZXN0IiwicmVxdWlyZSIsIkh1YlVybHMiLCJBQ1RPUl9VUkwiLCJDQUxMRVJfVVJMIiwiT0JTRVJWRVJfVVJMIiwiU3Vnb0Nsb3VkQWdlbnQiLCJ1cmwiLCJiYXNlVXJsIiwicGF0aCIsInF1ZXJ5IiwiZ2V0IiwiYm9keSIsImRhdGEiLCJpbmNsdWRlZCIsImluY2x1ZGVkRGljdCIsIl9pbmNsdWRlZFRvRGljdCIsIm1hcCIsInR5cGUiLCJpZCIsImRpY3QiLCJlbnRyeSIsImF0dHJpYnV0ZXMiLCJhZ2VudCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBSUE7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsV0FBV0MsUUFBUSxVQUFSLENBQWpCOztlQUNrQkEsUUFBUSxnQkFBUixDO0lBQVhDLE8sWUFBQUEsTzs7SUFDQUMsUyxHQUF1Q0QsTyxDQUF2Q0MsUztJQUFXQyxVLEdBQTRCRixPLENBQTVCRSxVO0lBQVlDLFksR0FBZ0JILE8sQ0FBaEJHLFk7O0lBRXhCQyxjOzs7QUFDSiw0QkFBeUI7QUFBQSxRQUFaQyxHQUFZLHVFQUFOLElBQU07O0FBQUE7O0FBQ3ZCLFNBQUtDLE9BQUwsR0FBZUQsR0FBZjtBQUNEOzs7O3dCQUVJRSxJLEVBQU1DLEssRUFBTztBQUNoQixVQUFJSCxNQUFNLEtBQUtDLE9BQUwsR0FBZSxLQUFLQSxPQUFMLEdBQWVDLElBQTlCLEdBQXFDQSxJQUEvQztBQUNBLGFBQU9ULFNBQVNXLEdBQVQsQ0FBYUosR0FBYixFQUFrQkcsS0FBbEIsQ0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1QkFLdUIsS0FBS0MsR0FBTCxDQUFTUixTQUFULEVBQW9CLEVBQXBCLEM7Ozs7QUFBZFMsb0IsUUFBQUEsSTtBQUNBQyxvQixHQUFrQkQsSSxDQUFsQkMsSSxFQUFNQyxRLEdBQVlGLEksQ0FBWkUsUTtBQUNQQyw0QixHQUFlLEtBQUtDLGVBQUwsQ0FBcUJGLFFBQXJCLEM7aURBQ2RELEtBQUtJLEdBQUwsQ0FBUyxVQUFDSixJQUFEO0FBQUEseUJBQVVFLGFBQWFGLEtBQUtLLElBQWxCLEVBQXdCTCxLQUFLTSxFQUE3QixDQUFWO0FBQUEsaUJBQVQsQzs7Ozs7Ozs7Ozs7Ozs7QUFHVDs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VCQUt1QixLQUFLUixHQUFMLENBQVNQLFVBQVQsRUFBcUIsRUFBckIsQzs7OztBQUFkUSxvQixTQUFBQSxJO0FBQ0FDLG9CLEdBQWtCRCxJLENBQWxCQyxJLEVBQU1DLFEsR0FBWUYsSSxDQUFaRSxRO0FBQ1BDLDRCLEdBQWUsS0FBS0MsZUFBTCxDQUFxQkYsUUFBckIsQztrREFDZEQsS0FBS0ksR0FBTCxDQUFTLFVBQUNKLElBQUQ7QUFBQSx5QkFBVUUsYUFBYUYsS0FBS0ssSUFBbEIsRUFBd0JMLEtBQUtNLEVBQTdCLENBQVY7QUFBQSxpQkFBVCxDOzs7Ozs7Ozs7Ozs7Ozs7O29DQUdRTCxRLEVBQVU7QUFDekIsVUFBTU0sT0FBTyxFQUFiO0FBRHlCO0FBQUE7QUFBQTs7QUFBQTtBQUV6QiwwQ0FBb0JOLFFBQXBCLDRHQUE4QjtBQUFBLGNBQW5CTyxNQUFtQjtBQUFBLGNBQ3JCSCxJQURxQixHQUNURyxNQURTLENBQ3JCSCxJQURxQjtBQUFBLGNBQ2ZDLEVBRGUsR0FDVEUsTUFEUyxDQUNmRixFQURlO0FBRTVCQyxlQUFLRixJQUFMLElBQWFFLEtBQUtGLElBQUwsS0FBYyxFQUEzQjtBQUNBRSxlQUFLRixJQUFMLEVBQVdDLEVBQVgsSUFBaUJFLE9BQU1DLFVBQXZCO0FBQ0Q7QUFOd0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFPekIsYUFBT0YsSUFBUDtBQUNEOzs7OztBQUdIOzs7QUFDQSxTQUFTRyxLQUFULENBQWdCaEIsR0FBaEIsRUFBcUI7QUFDbkIsU0FBTyxJQUFJRCxjQUFKLENBQW1CQyxHQUFuQixDQUFQO0FBQ0Q7O0FBRUQsZUFBY2dCLEtBQWQsRUFBcUI7QUFDbkJqQjtBQURtQixDQUFyQjs7QUFJQWtCLE9BQU9DLE9BQVAsR0FBaUJGLEtBQWpCIiwiZmlsZSI6ImFnZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3NlciBzaWRlIGFnZW50IGZvciBzcG90XG4gKiBAZnVuY3Rpb24gYWdlbnRcbiAqL1xuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IGJyZXF1ZXN0ID0gcmVxdWlyZSgnYnJlcXVlc3QnKVxuY29uc3Qge0h1YlVybHN9ID0gcmVxdWlyZSgnc3Vnby1jb25zdGFudHMnKVxuY29uc3Qge0FDVE9SX1VSTCwgQ0FMTEVSX1VSTCwgT0JTRVJWRVJfVVJMfSA9IEh1YlVybHNcblxuY2xhc3MgU3Vnb0Nsb3VkQWdlbnQge1xuICBjb25zdHJ1Y3RvciAodXJsID0gbnVsbCkge1xuICAgIHRoaXMuYmFzZVVybCA9IHVybFxuICB9XG5cbiAgZ2V0IChwYXRoLCBxdWVyeSkge1xuICAgIGxldCB1cmwgPSB0aGlzLmJhc2VVcmwgPyB0aGlzLmJhc2VVcmwgKyBwYXRoIDogcGF0aFxuICAgIHJldHVybiBicmVxdWVzdC5nZXQodXJsLCBxdWVyeSlcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGFjdG9yc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAgICovXG4gIGFzeW5jIGFjdG9ycyAoKSB7XG4gICAgY29uc3Qge2JvZHl9ID0gYXdhaXQgdGhpcy5nZXQoQUNUT1JfVVJMLCB7fSlcbiAgICBjb25zdCB7ZGF0YSwgaW5jbHVkZWR9ID0gYm9keVxuICAgIGNvbnN0IGluY2x1ZGVkRGljdCA9IHRoaXMuX2luY2x1ZGVkVG9EaWN0KGluY2x1ZGVkKVxuICAgIHJldHVybiBkYXRhLm1hcCgoZGF0YSkgPT4gaW5jbHVkZWREaWN0W2RhdGEudHlwZV1bZGF0YS5pZF0pXG4gIH1cblxuICAvKipcbiAgICogTGlzdCBjYWxsZXJzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfVxuICAgKi9cbiAgYXN5bmMgY2FsbGVycyAoKSB7XG4gICAgY29uc3Qge2JvZHl9ID0gYXdhaXQgdGhpcy5nZXQoQ0FMTEVSX1VSTCwge30pXG4gICAgY29uc3Qge2RhdGEsIGluY2x1ZGVkfSA9IGJvZHlcbiAgICBjb25zdCBpbmNsdWRlZERpY3QgPSB0aGlzLl9pbmNsdWRlZFRvRGljdChpbmNsdWRlZClcbiAgICByZXR1cm4gZGF0YS5tYXAoKGRhdGEpID0+IGluY2x1ZGVkRGljdFtkYXRhLnR5cGVdW2RhdGEuaWRdKVxuICB9XG5cbiAgX2luY2x1ZGVkVG9EaWN0IChpbmNsdWRlZCkge1xuICAgIGNvbnN0IGRpY3QgPSB7fVxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgaW5jbHVkZWQpIHtcbiAgICAgIGNvbnN0IHt0eXBlLCBpZH0gPSBlbnRyeVxuICAgICAgZGljdFt0eXBlXSA9IGRpY3RbdHlwZV0gfHwge31cbiAgICAgIGRpY3RbdHlwZV1baWRdID0gZW50cnkuYXR0cmlidXRlc1xuICAgIH1cbiAgICByZXR1cm4gZGljdFxuICB9XG59XG5cbi8qKiBAbGVuZHMgYWdlbnQgKi9cbmZ1bmN0aW9uIGFnZW50ICh1cmwpIHtcbiAgcmV0dXJuIG5ldyBTdWdvQ2xvdWRBZ2VudCh1cmwpXG59XG5cbk9iamVjdC5hc3NpZ24oYWdlbnQsIHtcbiAgU3Vnb0Nsb3VkQWdlbnRcbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gYWdlbnRcbiJdfQ==