UNPKG

@atlaskit/editor-plugin-avatar-group

Version:

Avatar Group plugin for @atlaskit/editor-core.

75 lines (74 loc) 2.91 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchUserNames = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _monitoring = require("@atlaskit/editor-common/monitoring"); var AGG_PATH = '/gateway/api/graphql'; var USERS_OPERATION_NAME = 'AvatarGroupUsersQuery'; var USERS_QUERY = "\n\tquery ".concat(USERS_OPERATION_NAME, "($accountIds: [ID!]!) {\n\t\tusers(accountIds: $accountIds) {\n\t\t\taccountId\n\t\t\tname\n\t\t}\n\t}\n"); var fetchUserNames = exports.fetchUserNames = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(accountIds) { var _json$data$users, _json$data, response, json, _t; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: if (accountIds.length) { _context.next = 1; break; } return _context.abrupt("return", {}); case 1: _context.prev = 1; _context.next = 2; return fetch(AGG_PATH, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ operationName: USERS_OPERATION_NAME, query: USERS_QUERY, variables: { accountIds: accountIds } }) }); case 2: response = _context.sent; if (response.ok) { _context.next = 3; break; } throw new Error("AGG user request failed: ".concat(response.status)); case 3: _context.next = 4; return response.json(); case 4: json = _context.sent; return _context.abrupt("return", ((_json$data$users = (_json$data = json.data) === null || _json$data === void 0 ? void 0 : _json$data.users) !== null && _json$data$users !== void 0 ? _json$data$users : []).reduce(function (namesById, user) { if (user.accountId && user.name) { namesById[user.accountId] = user.name; } return namesById; }, {})); case 5: _context.prev = 5; _t = _context["catch"](1); (0, _monitoring.logException)(_t, { location: 'editor-plugin-avatar-group/fetchUserNames' }); return _context.abrupt("return", {}); case 6: case "end": return _context.stop(); } }, _callee, null, [[1, 5]]); })); return function fetchUserNames(_x) { return _ref.apply(this, arguments); }; }();