UNPKG

@atlaskit/global-search

Version:

A cross-product search component (batteries included)

127 lines (106 loc) 4.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _Result = require("../model/Result"); var _utilServiceSupport = require("@atlaskit/util-service-support"); var PeopleSearchClientImpl = /*#__PURE__*/function () { function PeopleSearchClientImpl(url, cloudId) { (0, _classCallCheck2.default)(this, PeopleSearchClientImpl); this.serviceConfig = { url: url }; this.cloudId = cloudId; } (0, _createClass2.default)(PeopleSearchClientImpl, [{ key: "buildRecentQuery", value: function buildRecentQuery() { return { query: "query Collaborators(\n $cloudId: String!,\n $limit: Int) {\n Collaborators(cloudId: $cloudId, limit: $limit) {\n id,\n fullName,\n avatarUrl,\n title,\n nickname,\n department\n }\n }", variables: { cloudId: this.cloudId, limit: 3, excludeBots: true, excludeInactive: true } }; } }, { key: "buildRequestOptions", value: function buildRequestOptions(body) { return { path: 'graphql', requestInit: { headers: { 'Content-Type': 'application/json' }, method: 'POST', body: JSON.stringify(body) } }; } }, { key: "getRecentPeople", value: function () { var _getRecentPeople = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { var options, response; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: options = this.buildRequestOptions(this.buildRecentQuery()); _context.next = 3; return _utilServiceSupport.utils.requestService(this.serviceConfig, options); case 3: response = _context.sent; if (!response.errors) { _context.next = 6; break; } return _context.abrupt("return", []); case 6: if (!(!response.data || !response.data.Collaborators)) { _context.next = 8; break; } return _context.abrupt("return", []); case 8: return _context.abrupt("return", response.data.Collaborators.map(function (record) { return userSearchResultToResult(record, _Result.AnalyticsType.RecentPerson); })); case 9: case "end": return _context.stop(); } } }, _callee, this); })); function getRecentPeople() { return _getRecentPeople.apply(this, arguments); } return getRecentPeople; }() }]); return PeopleSearchClientImpl; }(); exports.default = PeopleSearchClientImpl; function userSearchResultToResult(searchResult, analyticsType) { var mention = searchResult.nickname || searchResult.fullName; return { resultType: _Result.ResultType.PersonResult, resultId: 'people-' + searchResult.id, name: searchResult.fullName, href: '/people/' + searchResult.id, avatarUrl: searchResult.avatarUrl, contentType: _Result.ContentType.Person, analyticsType: analyticsType, mentionName: mention, presenceMessage: searchResult.title }; }