@atlaskit/teams-client 4.18.0 → 4.20.0
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/CHANGELOG.md +14 -3
- package/dist/cjs/common/utils/permissions/constants.js +11 -4
- package/dist/cjs/common/utils/permissions/types.js +1 -1
- package/dist/cjs/common/utils/ufo/constants.js +1 -1
- package/dist/cjs/common/utils/ufo/index.js +2 -2
- package/dist/cjs/services/legion-client/index.js +201 -180
- package/dist/cjs/services/main.js +579 -521
- package/dist/cjs/services/reporting-lines-client/index.js +63 -0
- package/dist/cjs/services/reporting-lines-client/utils/queries/ReportingLinesQueryWithAccountStatus.graphql.js +12 -0
- package/dist/cjs/services/reporting-lines-client/utils/types.js +16 -0
- package/dist/cjs/services/sentry/utils/get-sentry-config.js +1 -1
- package/dist/cjs/types/reporting-lines.js +1 -0
- package/dist/es2019/common/utils/permissions/constants.js +9 -4
- package/dist/es2019/common/utils/permissions/types.js +1 -1
- package/dist/es2019/common/utils/ufo/constants.js +1 -1
- package/dist/es2019/common/utils/ufo/index.js +2 -2
- package/dist/es2019/services/legion-client/index.js +4 -0
- package/dist/es2019/services/main.js +12 -0
- package/dist/es2019/services/reporting-lines-client/index.js +24 -0
- package/dist/es2019/services/reporting-lines-client/utils/queries/ReportingLinesQueryWithAccountStatus.graphql.js +40 -0
- package/dist/es2019/services/reporting-lines-client/utils/types.js +11 -0
- package/dist/es2019/services/sentry/utils/get-sentry-config.js +1 -1
- package/dist/es2019/types/reporting-lines.js +0 -0
- package/dist/esm/common/utils/permissions/constants.js +11 -4
- package/dist/esm/common/utils/permissions/types.js +1 -1
- package/dist/esm/common/utils/ufo/constants.js +1 -1
- package/dist/esm/common/utils/ufo/index.js +2 -2
- package/dist/esm/services/legion-client/index.js +201 -180
- package/dist/esm/services/main.js +579 -521
- package/dist/esm/services/reporting-lines-client/index.js +56 -0
- package/dist/esm/services/reporting-lines-client/utils/queries/ReportingLinesQueryWithAccountStatus.graphql.js +5 -0
- package/dist/esm/services/reporting-lines-client/utils/types.js +11 -0
- package/dist/esm/services/sentry/utils/get-sentry-config.js +1 -1
- package/dist/esm/types/reporting-lines.js +0 -0
- package/dist/types/common/utils/permissions/types.d.ts +1 -1
- package/dist/types/common/utils/ufo/constants.d.ts +2 -2
- package/dist/types/services/legion-client/index.d.ts +1 -0
- package/dist/types/services/main.d.ts +7 -0
- package/dist/types/services/reporting-lines-client/index.d.ts +11 -0
- package/dist/types/services/reporting-lines-client/utils/queries/ReportingLinesQueryWithAccountStatus.graphql.d.ts +2 -0
- package/dist/types/services/reporting-lines-client/utils/types.d.ts +32 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/reporting-lines.d.ts +1 -0
- package/dist/types-ts4.5/common/utils/permissions/types.d.ts +2 -1
- package/dist/types-ts4.5/common/utils/ufo/constants.d.ts +4 -2
- package/dist/types-ts4.5/services/legion-client/index.d.ts +1 -0
- package/dist/types-ts4.5/services/main.d.ts +7 -0
- package/dist/types-ts4.5/services/reporting-lines-client/index.d.ts +11 -0
- package/dist/types-ts4.5/services/reporting-lines-client/utils/queries/ReportingLinesQueryWithAccountStatus.graphql.d.ts +2 -0
- package/dist/types-ts4.5/services/reporting-lines-client/utils/types.d.ts +32 -0
- package/dist/types-ts4.5/types/index.d.ts +1 -0
- package/dist/types-ts4.5/types/reporting-lines.d.ts +1 -0
- package/package.json +4 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.ReportingLinesClient = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
var _constants = require("../constants");
|
|
16
|
+
var _graphqlClient = require("../graphql-client");
|
|
17
|
+
var _main = require("../sentry/main");
|
|
18
|
+
var _ReportingLinesQueryWithAccountStatus = _interopRequireDefault(require("./utils/queries/ReportingLinesQueryWithAccountStatus.graphql"));
|
|
19
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
20
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
21
|
+
var SERVICE_URL = "".concat(_constants.DEFAULT_CONFIG.stargateRoot, "/watermelon/graphql");
|
|
22
|
+
var ReportingLinesClient = exports.ReportingLinesClient = /*#__PURE__*/function (_BaseGraphQlClient) {
|
|
23
|
+
function ReportingLinesClient(config) {
|
|
24
|
+
(0, _classCallCheck2.default)(this, ReportingLinesClient);
|
|
25
|
+
return _callSuper(this, ReportingLinesClient, [SERVICE_URL, config]);
|
|
26
|
+
}
|
|
27
|
+
(0, _inherits2.default)(ReportingLinesClient, _BaseGraphQlClient);
|
|
28
|
+
return (0, _createClass2.default)(ReportingLinesClient, [{
|
|
29
|
+
key: "getReportingLines",
|
|
30
|
+
value: function () {
|
|
31
|
+
var _getReportingLines = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(userId) {
|
|
32
|
+
var response;
|
|
33
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
34
|
+
while (1) switch (_context.prev = _context.next) {
|
|
35
|
+
case 0:
|
|
36
|
+
_context.next = 2;
|
|
37
|
+
return this.makeGraphQLRequest({
|
|
38
|
+
query: _ReportingLinesQueryWithAccountStatus.default,
|
|
39
|
+
variables: {
|
|
40
|
+
aaid: userId
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
operationName: 'ReportingLines'
|
|
44
|
+
});
|
|
45
|
+
case 2:
|
|
46
|
+
response = _context.sent;
|
|
47
|
+
return _context.abrupt("return", response);
|
|
48
|
+
case 4:
|
|
49
|
+
case "end":
|
|
50
|
+
return _context.stop();
|
|
51
|
+
}
|
|
52
|
+
}, _callee, this);
|
|
53
|
+
}));
|
|
54
|
+
function getReportingLines(_x) {
|
|
55
|
+
return _getReportingLines.apply(this, arguments);
|
|
56
|
+
}
|
|
57
|
+
return getReportingLines;
|
|
58
|
+
}()
|
|
59
|
+
}]);
|
|
60
|
+
}(_graphqlClient.BaseGraphQlClient);
|
|
61
|
+
var _default = exports.default = new ReportingLinesClient({
|
|
62
|
+
logException: _main.logException
|
|
63
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _graphql = require("graphql");
|
|
10
|
+
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
11
|
+
var _templateObject;
|
|
12
|
+
var _default = exports.default = (0, _graphql.print)((0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\tfragment ReportingLinesUserPII on UserPII {\n\t\tname\n\t\tpicture\n\t\taccountStatus\n\t\textendedProfile {\n\t\t\tjobTitle\n\t\t}\n\t}\n\n\tfragment ReportingLinesUserFragment on ReportingLinesUser {\n\t\taccountIdentifier\n\t\tidentifierType\n\t\tnumberOfDirectReports\n\t\tnumberOfTotalReports\n\t\tpii {\n\t\t\t...ReportingLinesUserPII\n\t\t}\n\t}\n\n\tquery ReportingLines($aaid: String) {\n\t\treportingLines(aaidOrHash: $aaid) {\n\t\t\tlastModifiedDate\n\t\t\tuser {\n\t\t\t\t...ReportingLinesUserFragment\n\t\t\t}\n\t\t\tmanagers {\n\t\t\t\t...ReportingLinesUserFragment\n\t\t\t}\n\t\t\tpeers {\n\t\t\t\t...ReportingLinesUserFragment\n\t\t\t}\n\t\t\treports {\n\t\t\t\t...ReportingLinesUserFragment\n\t\t\t}\n\t\t}\n\t}\n"]))));
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AccountIdentifierType = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* These are partial types for the reportingLines GQL request from Team Central.
|
|
9
|
+
* Not all data that could be returned is defined here, just what we need.
|
|
10
|
+
*/
|
|
11
|
+
var AccountIdentifierType = exports.AccountIdentifierType = /*#__PURE__*/function (AccountIdentifierType) {
|
|
12
|
+
AccountIdentifierType["ATLASSIAN_ID"] = "ATLASSIAN_ID";
|
|
13
|
+
AccountIdentifierType["BASE64_HASH"] = "BASE64_HASH";
|
|
14
|
+
AccountIdentifierType["UNKNOWN"] = "UNKNOWN";
|
|
15
|
+
return AccountIdentifierType;
|
|
16
|
+
}({});
|
|
@@ -36,7 +36,7 @@ function getSentryConfig(options) {
|
|
|
36
36
|
return _objectSpread(_objectSpread(_objectSpread({}, otherOptions), DEFAULT_SENTRY_CONFIG), {}, {
|
|
37
37
|
// Standalone __VERSION__ is set from `bin/set-release-version.sh`
|
|
38
38
|
// when building to deploy to production
|
|
39
|
-
release: "".concat("@atlaskit/teams-client", "@").concat("
|
|
39
|
+
release: "".concat("@atlaskit/teams-client", "@").concat("0.0.0-development") ||
|
|
40
40
|
// @ts-ignore Jira - window.BUILD_KEY
|
|
41
41
|
window.BUILD_KEY || ( // @ts-ignore Confluence - window.__buildInfo
|
|
42
42
|
(_window$__buildInfo = window.__buildInfo) === null || _window$__buildInfo === void 0 ? void 0 : _window$__buildInfo.FRONTEND_VERSION) || '---',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -18,7 +18,8 @@ export const allPermissions = (defaultPermission, isMember) => ({
|
|
|
18
18
|
EDIT_TEAM_SETTINGS: defaultPermission,
|
|
19
19
|
EDIT_TEAM_MEMBERSHIP: defaultPermission,
|
|
20
20
|
REMOVE_AGENT_FROM_TEAM: defaultPermission,
|
|
21
|
-
ADD_AGENT_TO_TEAM: defaultPermission
|
|
21
|
+
ADD_AGENT_TO_TEAM: defaultPermission,
|
|
22
|
+
ARCHIVE_TEAM: defaultPermission && isMember
|
|
22
23
|
});
|
|
23
24
|
export const vanityActions = ['EDIT_DESCRIPTION', 'EDIT_TEAM_NAME', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK'];
|
|
24
25
|
export const openPermissions = permission => ({
|
|
@@ -40,23 +41,27 @@ export const SCIMSyncTeamPermissions = (isMember, isOrgAdmin, source) => ({
|
|
|
40
41
|
});
|
|
41
42
|
export const getPermissionMap = (settings, permission, isMember, isOrgAdmin, source) => {
|
|
42
43
|
const newTeamProfileEnabled = FeatureGates.getExperimentValue('new_team_profile', 'isEnabled', false);
|
|
44
|
+
const isArchiveTeamEnabled = fg('legion-enable-archive-teams') && newTeamProfileEnabled;
|
|
43
45
|
if (settings === 'OPEN') {
|
|
44
46
|
return {
|
|
45
47
|
...allPermissions(permission === 'FULL_WRITE', isMember),
|
|
46
|
-
...openPermissions(permission)
|
|
48
|
+
...openPermissions(permission),
|
|
49
|
+
ARCHIVE_TEAM: isArchiveTeamEnabled && permission === 'FULL_WRITE' && isMember
|
|
47
50
|
};
|
|
48
51
|
}
|
|
49
52
|
if (settings === 'MEMBER_INVITE') {
|
|
50
53
|
return {
|
|
51
54
|
...allPermissions(permission === 'FULL_WRITE', isMember),
|
|
52
|
-
...inviteOnlyPermissions(permission)
|
|
55
|
+
...inviteOnlyPermissions(permission),
|
|
56
|
+
ARCHIVE_TEAM: isArchiveTeamEnabled && permission === 'FULL_WRITE' && isMember
|
|
53
57
|
};
|
|
54
58
|
} else if (settings === 'EXTERNAL') {
|
|
55
59
|
return {
|
|
56
60
|
...allPermissions(false, isMember),
|
|
57
61
|
...SCIMSyncTeamPermissions(isMember, isOrgAdmin, source),
|
|
58
62
|
ADD_AGENT_TO_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin),
|
|
59
|
-
REMOVE_AGENT_FROM_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin)
|
|
63
|
+
REMOVE_AGENT_FROM_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin),
|
|
64
|
+
ARCHIVE_TEAM: isArchiveTeamEnabled && isOrgAdmin
|
|
60
65
|
};
|
|
61
66
|
}
|
|
62
67
|
return allPermissions(false, false);
|
|
@@ -2,4 +2,4 @@ export const AllTeamActions = ['ADD_MEMBER_TO_TEAM', 'JOIN_TEAM', 'REQUEST_TO_JO
|
|
|
2
2
|
// Visual
|
|
3
3
|
'EDIT_TEAM_NAME', 'EDIT_DESCRIPTION', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK', 'EDIT_TEAM_SETTINGS', 'EDIT_TEAM_MEMBERSHIP',
|
|
4
4
|
// Serious
|
|
5
|
-
'DELETE_TEAM'];
|
|
5
|
+
'DELETE_TEAM', 'ARCHIVE_TEAM'];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
|
|
2
2
|
import { TeamsUFOExperience } from './index';
|
|
3
|
-
const TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl', 'getWebLinkTitle', 'addAgentToTeam', 'getTeamEnabledSites', 'assignTeamsToSites', 'removeAgentTeamAssociation', 'getAssignedTeams', 'setTeamSiteAssignmentPermission', 'getUnassignedTeams', 'getTeamSiteAssignmentOrgDetails', 'getTeamsToBeClonedToJsmSites'];
|
|
3
|
+
const TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'archiveTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl', 'getWebLinkTitle', 'addAgentToTeam', 'getTeamEnabledSites', 'assignTeamsToSites', 'removeAgentTeamAssociation', 'getAssignedTeams', 'setTeamSiteAssignmentPermission', 'getUnassignedTeams', 'getTeamSiteAssignmentOrgDetails', 'getTeamsToBeClonedToJsmSites', 'getReportingLines'];
|
|
4
4
|
export const TEAMS_CLIENT_EXPERIENCES = new Map([...TeamsClientExperienceKeyList.map(key => [key,
|
|
5
5
|
// camelCase to kebab-case
|
|
6
6
|
new TeamsUFOExperience(`teams-client-${key.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}`, {
|
|
@@ -27,7 +27,7 @@ export class TeamsUFOExperience extends UFOExperience {
|
|
|
27
27
|
return super.failure({
|
|
28
28
|
metadata: {
|
|
29
29
|
error: createErrorMetadata(error),
|
|
30
|
-
packageVersion: "
|
|
30
|
+
packageVersion: "0.0.0-development",
|
|
31
31
|
packageName: "@atlaskit/teams-client"
|
|
32
32
|
}
|
|
33
33
|
});
|
|
@@ -35,7 +35,7 @@ export class TeamsUFOExperience extends UFOExperience {
|
|
|
35
35
|
return super.failure({
|
|
36
36
|
metadata: {
|
|
37
37
|
error: 'unknown error',
|
|
38
|
-
packageVersion: "
|
|
38
|
+
packageVersion: "0.0.0-development",
|
|
39
39
|
packageName: "@atlaskit/teams-client"
|
|
40
40
|
}
|
|
41
41
|
});
|
|
@@ -247,6 +247,10 @@ export class LegionClient extends RestClient {
|
|
|
247
247
|
async deleteTeam(teamId) {
|
|
248
248
|
return this.deleteResource(`${v4UrlPath}/${this.trimTeamARI(teamId)}`);
|
|
249
249
|
}
|
|
250
|
+
async archiveTeam(teamId) {
|
|
251
|
+
const siteId = this.getCloudId();
|
|
252
|
+
return this.postResourceRaw(`${v4UrlPath}/archive?siteId=${siteId}`, JSON.stringify([this.trimTeamARI(teamId)]));
|
|
253
|
+
}
|
|
250
254
|
|
|
251
255
|
/**
|
|
252
256
|
* @private
|
|
@@ -12,6 +12,7 @@ import objectResolverClient from './object-resolver-client';
|
|
|
12
12
|
import permsClient from './perms-client';
|
|
13
13
|
import publicApiClient from './public-api-client';
|
|
14
14
|
import replinesClient from './replines-client';
|
|
15
|
+
import reportingLinesClient from './reporting-lines-client';
|
|
15
16
|
import teamCentralClient from './team-central-client';
|
|
16
17
|
import teamsInSlackClient from './teams-in-slack-client';
|
|
17
18
|
import userPreferencesClient from './user-preferences-client';
|
|
@@ -46,6 +47,7 @@ export class TeamsClient {
|
|
|
46
47
|
_defineProperty(this, "_identityClient", identityClient);
|
|
47
48
|
_defineProperty(this, "_teamCentralClient", teamCentralClient);
|
|
48
49
|
_defineProperty(this, "_replinesClient", replinesClient);
|
|
50
|
+
_defineProperty(this, "_reportingLinesClient", reportingLinesClient);
|
|
49
51
|
if (context) {
|
|
50
52
|
this.setContext(context);
|
|
51
53
|
}
|
|
@@ -342,6 +344,13 @@ export class TeamsClient {
|
|
|
342
344
|
return this.measurePerformance('deleteTeam', () => this._legionClient.deleteTeam(teamId));
|
|
343
345
|
}
|
|
344
346
|
|
|
347
|
+
/**
|
|
348
|
+
* Archive a team
|
|
349
|
+
*/
|
|
350
|
+
async archiveTeam(teamId) {
|
|
351
|
+
return this.measurePerformance('archiveTeam', () => this._legionClient.archiveTeam(teamId));
|
|
352
|
+
}
|
|
353
|
+
|
|
345
354
|
/**
|
|
346
355
|
* @private
|
|
347
356
|
* @deprecated should be other means to solve this issue
|
|
@@ -689,5 +698,8 @@ export class TeamsClient {
|
|
|
689
698
|
async checkOrgFullAlignmentStatus(...args) {
|
|
690
699
|
return this._legionClient.checkOrgFullAlignmentStatus(...args);
|
|
691
700
|
}
|
|
701
|
+
async getReportingLines(...args) {
|
|
702
|
+
return this.measurePerformance('getReportingLines', () => this._reportingLinesClient.getReportingLines(...args));
|
|
703
|
+
}
|
|
692
704
|
}
|
|
693
705
|
export const teamsClient = new TeamsClient();
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DEFAULT_CONFIG } from '../constants';
|
|
2
|
+
import { BaseGraphQlClient } from '../graphql-client';
|
|
3
|
+
import { logException } from '../sentry/main';
|
|
4
|
+
import ReportingLinesQueryWithAccountStatus from './utils/queries/ReportingLinesQueryWithAccountStatus.graphql';
|
|
5
|
+
const SERVICE_URL = `${DEFAULT_CONFIG.stargateRoot}/watermelon/graphql`;
|
|
6
|
+
export class ReportingLinesClient extends BaseGraphQlClient {
|
|
7
|
+
constructor(config) {
|
|
8
|
+
super(SERVICE_URL, config);
|
|
9
|
+
}
|
|
10
|
+
async getReportingLines(userId) {
|
|
11
|
+
const response = await this.makeGraphQLRequest({
|
|
12
|
+
query: ReportingLinesQueryWithAccountStatus,
|
|
13
|
+
variables: {
|
|
14
|
+
aaid: userId
|
|
15
|
+
}
|
|
16
|
+
}, {
|
|
17
|
+
operationName: 'ReportingLines'
|
|
18
|
+
});
|
|
19
|
+
return response;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export default new ReportingLinesClient({
|
|
23
|
+
logException
|
|
24
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { print } from 'graphql';
|
|
2
|
+
import gql from 'graphql-tag';
|
|
3
|
+
export default print(gql`
|
|
4
|
+
fragment ReportingLinesUserPII on UserPII {
|
|
5
|
+
name
|
|
6
|
+
picture
|
|
7
|
+
accountStatus
|
|
8
|
+
extendedProfile {
|
|
9
|
+
jobTitle
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
fragment ReportingLinesUserFragment on ReportingLinesUser {
|
|
14
|
+
accountIdentifier
|
|
15
|
+
identifierType
|
|
16
|
+
numberOfDirectReports
|
|
17
|
+
numberOfTotalReports
|
|
18
|
+
pii {
|
|
19
|
+
...ReportingLinesUserPII
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
query ReportingLines($aaid: String) {
|
|
24
|
+
reportingLines(aaidOrHash: $aaid) {
|
|
25
|
+
lastModifiedDate
|
|
26
|
+
user {
|
|
27
|
+
...ReportingLinesUserFragment
|
|
28
|
+
}
|
|
29
|
+
managers {
|
|
30
|
+
...ReportingLinesUserFragment
|
|
31
|
+
}
|
|
32
|
+
peers {
|
|
33
|
+
...ReportingLinesUserFragment
|
|
34
|
+
}
|
|
35
|
+
reports {
|
|
36
|
+
...ReportingLinesUserFragment
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* These are partial types for the reportingLines GQL request from Team Central.
|
|
3
|
+
* Not all data that could be returned is defined here, just what we need.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export let AccountIdentifierType = /*#__PURE__*/function (AccountIdentifierType) {
|
|
7
|
+
AccountIdentifierType["ATLASSIAN_ID"] = "ATLASSIAN_ID";
|
|
8
|
+
AccountIdentifierType["BASE64_HASH"] = "BASE64_HASH";
|
|
9
|
+
AccountIdentifierType["UNKNOWN"] = "UNKNOWN";
|
|
10
|
+
return AccountIdentifierType;
|
|
11
|
+
}({});
|
|
@@ -28,7 +28,7 @@ export function getSentryConfig(options) {
|
|
|
28
28
|
...DEFAULT_SENTRY_CONFIG,
|
|
29
29
|
// Standalone __VERSION__ is set from `bin/set-release-version.sh`
|
|
30
30
|
// when building to deploy to production
|
|
31
|
-
release: `${"@atlaskit/teams-client"}@${"
|
|
31
|
+
release: `${"@atlaskit/teams-client"}@${"0.0.0-development"}` ||
|
|
32
32
|
// @ts-ignore Jira - window.BUILD_KEY
|
|
33
33
|
window.BUILD_KEY || ( // @ts-ignore Confluence - window.__buildInfo
|
|
34
34
|
(_window$__buildInfo = window.__buildInfo) === null || _window$__buildInfo === void 0 ? void 0 : _window$__buildInfo.FRONTEND_VERSION) || '---',
|
|
File without changes
|
|
@@ -22,7 +22,8 @@ export var allPermissions = function allPermissions(defaultPermission, isMember)
|
|
|
22
22
|
EDIT_TEAM_SETTINGS: defaultPermission,
|
|
23
23
|
EDIT_TEAM_MEMBERSHIP: defaultPermission,
|
|
24
24
|
REMOVE_AGENT_FROM_TEAM: defaultPermission,
|
|
25
|
-
ADD_AGENT_TO_TEAM: defaultPermission
|
|
25
|
+
ADD_AGENT_TO_TEAM: defaultPermission,
|
|
26
|
+
ARCHIVE_TEAM: defaultPermission && isMember
|
|
26
27
|
};
|
|
27
28
|
};
|
|
28
29
|
export var vanityActions = ['EDIT_DESCRIPTION', 'EDIT_TEAM_NAME', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK'];
|
|
@@ -51,15 +52,21 @@ export var SCIMSyncTeamPermissions = function SCIMSyncTeamPermissions(isMember,
|
|
|
51
52
|
};
|
|
52
53
|
export var getPermissionMap = function getPermissionMap(settings, permission, isMember, isOrgAdmin, source) {
|
|
53
54
|
var newTeamProfileEnabled = FeatureGates.getExperimentValue('new_team_profile', 'isEnabled', false);
|
|
55
|
+
var isArchiveTeamEnabled = fg('legion-enable-archive-teams') && newTeamProfileEnabled;
|
|
54
56
|
if (settings === 'OPEN') {
|
|
55
|
-
return _objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), openPermissions(permission))
|
|
57
|
+
return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), openPermissions(permission)), {}, {
|
|
58
|
+
ARCHIVE_TEAM: isArchiveTeamEnabled && permission === 'FULL_WRITE' && isMember
|
|
59
|
+
});
|
|
56
60
|
}
|
|
57
61
|
if (settings === 'MEMBER_INVITE') {
|
|
58
|
-
return _objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), inviteOnlyPermissions(permission))
|
|
62
|
+
return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), inviteOnlyPermissions(permission)), {}, {
|
|
63
|
+
ARCHIVE_TEAM: isArchiveTeamEnabled && permission === 'FULL_WRITE' && isMember
|
|
64
|
+
});
|
|
59
65
|
} else if (settings === 'EXTERNAL') {
|
|
60
66
|
return _objectSpread(_objectSpread(_objectSpread({}, allPermissions(false, isMember)), SCIMSyncTeamPermissions(isMember, isOrgAdmin, source)), {}, {
|
|
61
67
|
ADD_AGENT_TO_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin),
|
|
62
|
-
REMOVE_AGENT_FROM_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin)
|
|
68
|
+
REMOVE_AGENT_FROM_TEAM: newTeamProfileEnabled && (isMember || isOrgAdmin),
|
|
69
|
+
ARCHIVE_TEAM: isArchiveTeamEnabled && isOrgAdmin
|
|
63
70
|
});
|
|
64
71
|
}
|
|
65
72
|
return allPermissions(false, false);
|
|
@@ -2,4 +2,4 @@ export var AllTeamActions = ['ADD_MEMBER_TO_TEAM', 'JOIN_TEAM', 'REQUEST_TO_JOIN
|
|
|
2
2
|
// Visual
|
|
3
3
|
'EDIT_TEAM_NAME', 'EDIT_DESCRIPTION', 'EDIT_PROFILE_HEADER', 'EDIT_TEAM_LINK', 'EDIT_TEAM_SETTINGS', 'EDIT_TEAM_MEMBERSHIP',
|
|
4
4
|
// Serious
|
|
5
|
-
'DELETE_TEAM'];
|
|
5
|
+
'DELETE_TEAM', 'ARCHIVE_TEAM'];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
2
|
import { ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
|
|
3
3
|
import { TeamsUFOExperience } from './index';
|
|
4
|
-
var TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl', 'getWebLinkTitle', 'addAgentToTeam', 'getTeamEnabledSites', 'assignTeamsToSites', 'removeAgentTeamAssociation', 'getAssignedTeams', 'setTeamSiteAssignmentPermission', 'getUnassignedTeams', 'getTeamSiteAssignmentOrgDetails', 'getTeamsToBeClonedToJsmSites'];
|
|
4
|
+
var TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'archiveTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl', 'getWebLinkTitle', 'addAgentToTeam', 'getTeamEnabledSites', 'assignTeamsToSites', 'removeAgentTeamAssociation', 'getAssignedTeams', 'setTeamSiteAssignmentPermission', 'getUnassignedTeams', 'getTeamSiteAssignmentOrgDetails', 'getTeamsToBeClonedToJsmSites', 'getReportingLines'];
|
|
5
5
|
export var TEAMS_CLIENT_EXPERIENCES = new Map(_toConsumableArray(TeamsClientExperienceKeyList.map(function (key) {
|
|
6
6
|
return [key,
|
|
7
7
|
// camelCase to kebab-case
|
|
@@ -45,7 +45,7 @@ export var TeamsUFOExperience = /*#__PURE__*/function (_UFOExperience) {
|
|
|
45
45
|
return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
|
|
46
46
|
metadata: {
|
|
47
47
|
error: createErrorMetadata(error),
|
|
48
|
-
packageVersion: "
|
|
48
|
+
packageVersion: "0.0.0-development",
|
|
49
49
|
packageName: "@atlaskit/teams-client"
|
|
50
50
|
}
|
|
51
51
|
}]);
|
|
@@ -53,7 +53,7 @@ export var TeamsUFOExperience = /*#__PURE__*/function (_UFOExperience) {
|
|
|
53
53
|
return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
|
|
54
54
|
metadata: {
|
|
55
55
|
error: 'unknown error',
|
|
56
|
-
packageVersion: "
|
|
56
|
+
packageVersion: "0.0.0-development",
|
|
57
57
|
packageName: "@atlaskit/teams-client"
|
|
58
58
|
}
|
|
59
59
|
}]);
|