@webex/plugin-team-memberships 3.0.0-beta.9 → 3.0.0-bnr.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/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/plugin-team-memberships.d.ts +14 -0
- package/dist/team-memberships.js +1 -12
- package/dist/team-memberships.js.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/team-memberships.d.ts +49 -0
- package/package.json +9 -9
- package/src/team-memberships.js +18 -23
- package/test/integration/spec/team-memberships.js +173 -142
package/dist/index.js
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _webexCore = require("@webex/webex-core");
|
|
14
|
-
|
|
15
10
|
var _teamMemberships = _interopRequireDefault(require("./team-memberships"));
|
|
16
|
-
|
|
17
11
|
/*!
|
|
18
12
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
19
13
|
*/
|
|
14
|
+
|
|
20
15
|
(0, _webexCore.registerPlugin)('teamMemberships', _teamMemberships.default);
|
|
21
16
|
var _default = _teamMemberships.default;
|
|
22
17
|
exports.default = _default;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerPlugin","TeamMemberships"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {registerPlugin} from '@webex/webex-core';\n\nimport TeamMemberships from './team-memberships';\n\nregisterPlugin('teamMemberships', TeamMemberships);\n\nexport default TeamMemberships;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["registerPlugin","TeamMemberships"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {registerPlugin} from '@webex/webex-core';\n\nimport TeamMemberships from './team-memberships';\n\nregisterPlugin('teamMemberships', TeamMemberships);\n\nexport default TeamMemberships;\n"],"mappings":";;;;;;;;AAIA;AAEA;AANA;AACA;AACA;;AAMA,IAAAA,yBAAc,EAAC,iBAAiB,EAAEC,wBAAe,CAAC;AAAC,eAEpCA,wBAAe;AAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team Memberships represent a person's relationship to a team. Use this API to
|
|
3
|
+
* list members of any team that you're in or create memberships to invite
|
|
4
|
+
* someone to a team. Team memberships can also be updated to make someone a
|
|
5
|
+
* moderator or deleted to remove them from the team.
|
|
6
|
+
*
|
|
7
|
+
* Just like in the Webex app, you must be a member of the team in order to list
|
|
8
|
+
* its memberships or invite people.
|
|
9
|
+
* @class
|
|
10
|
+
*/
|
|
11
|
+
declare const TeamMemberships: any;
|
|
12
|
+
export default TeamMemberships;
|
|
13
|
+
|
|
14
|
+
export { }
|
package/dist/team-memberships.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
_Object$defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
|
|
9
7
|
exports.default = void 0;
|
|
10
|
-
|
|
11
8
|
var _webexCore = require("@webex/webex-core");
|
|
12
|
-
|
|
13
9
|
/*!
|
|
14
10
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
15
11
|
*/
|
|
@@ -73,7 +69,6 @@ var TeamMemberships = _webexCore.WebexPlugin.extend({
|
|
|
73
69
|
return res.body;
|
|
74
70
|
});
|
|
75
71
|
},
|
|
76
|
-
|
|
77
72
|
/**
|
|
78
73
|
* Get details for a membership by ID.
|
|
79
74
|
* @instance
|
|
@@ -109,7 +104,6 @@ var TeamMemberships = _webexCore.WebexPlugin.extend({
|
|
|
109
104
|
return res.body.items || res.body;
|
|
110
105
|
});
|
|
111
106
|
},
|
|
112
|
-
|
|
113
107
|
/**
|
|
114
108
|
* Lists all team memberships. By default, lists memberships for teams to
|
|
115
109
|
* which the authenticated user belongs.
|
|
@@ -143,7 +137,6 @@ var TeamMemberships = _webexCore.WebexPlugin.extend({
|
|
|
143
137
|
*/
|
|
144
138
|
list: function list(options) {
|
|
145
139
|
var _this = this;
|
|
146
|
-
|
|
147
140
|
return this.request({
|
|
148
141
|
service: 'hydra',
|
|
149
142
|
resource: 'team/memberships',
|
|
@@ -152,7 +145,6 @@ var TeamMemberships = _webexCore.WebexPlugin.extend({
|
|
|
152
145
|
return new _webexCore.Page(res, _this.webex);
|
|
153
146
|
});
|
|
154
147
|
},
|
|
155
|
-
|
|
156
148
|
/**
|
|
157
149
|
* Deletes a membership by ID.
|
|
158
150
|
* @instance
|
|
@@ -200,11 +192,9 @@ var TeamMemberships = _webexCore.WebexPlugin.extend({
|
|
|
200
192
|
if (res.statusCode === 204) {
|
|
201
193
|
return undefined;
|
|
202
194
|
}
|
|
203
|
-
|
|
204
195
|
return res.body;
|
|
205
196
|
});
|
|
206
197
|
},
|
|
207
|
-
|
|
208
198
|
/**
|
|
209
199
|
* Updates properties for a membership.
|
|
210
200
|
* @instance
|
|
@@ -223,9 +213,8 @@ var TeamMemberships = _webexCore.WebexPlugin.extend({
|
|
|
223
213
|
return res.body;
|
|
224
214
|
});
|
|
225
215
|
},
|
|
226
|
-
version: "3.0.0-
|
|
216
|
+
version: "3.0.0-bnr.0"
|
|
227
217
|
});
|
|
228
|
-
|
|
229
218
|
var _default = TeamMemberships;
|
|
230
219
|
exports.default = _default;
|
|
231
220
|
//# sourceMappingURL=team-memberships.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TeamMemberships","WebexPlugin","extend","create","membership","request","method","service","resource","body","then","res","get","id","items","list","options","qs","Page","webex","remove","statusCode","undefined","update"],"sources":["team-memberships.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin, Page} from '@webex/webex-core';\n\n/**\n * @typedef {Object} TeamMembershipObject\n * @property {string} id - (server generated) Unique identifier for the team membership\n * @property {string} teamId - The team ID\n * @property {string} personId - The person ID\n * @property {string} personEmail - The email address of the person\n * @property {boolean} isModerator - Set to `true` to make the person a team\n * moderator\n * @property {string} created - (server generated) The date and time that the team membership was created\n */\n\n/**\n * Team Memberships represent a person's relationship to a team. Use this API to\n * list members of any team that you're in or create memberships to invite\n * someone to a team. Team memberships can also be updated to make someone a\n * moderator or deleted to remove them from the team.\n *\n * Just like in the Webex app, you must be a member of the team in order to list\n * its memberships or invite people.\n * @class\n */\nconst TeamMemberships = WebexPlugin.extend({\n /**\n * Add someone to a team by Person ID or email address; optionally making them\n * a moderator.\n * @instance\n * @memberof TeamMemberships\n * @param {TeamMembershipObject} membership\n * @returns {Promise<TeamMembershipObject>}\n * @example\n * webex.teams.create({name: 'Create Team Membership Example'})\n * .then(function(team) {\n * return webex.teamMemberships.create({\n * personEmail: 'alice@example.com',\n * teamId: team.id\n * });\n * })\n * .then(function(membership) {\n * var assert = require('assert');\n * assert(membership.id);\n * assert(membership.teamId);\n * assert(membership.personId);\n * assert(membership.personEmail);\n * assert('isModerator' in membership);\n * assert(membership.created);\n * return 'success';\n * });\n * // => success\n */\n create(membership) {\n return this.request({\n method: 'POST',\n service: 'hydra',\n resource: 'team/memberships',\n body: membership
|
|
1
|
+
{"version":3,"names":["TeamMemberships","WebexPlugin","extend","create","membership","request","method","service","resource","body","then","res","get","id","items","list","options","qs","Page","webex","remove","statusCode","undefined","update"],"sources":["team-memberships.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin, Page} from '@webex/webex-core';\n\n/**\n * @typedef {Object} TeamMembershipObject\n * @property {string} id - (server generated) Unique identifier for the team membership\n * @property {string} teamId - The team ID\n * @property {string} personId - The person ID\n * @property {string} personEmail - The email address of the person\n * @property {boolean} isModerator - Set to `true` to make the person a team\n * moderator\n * @property {string} created - (server generated) The date and time that the team membership was created\n */\n\n/**\n * Team Memberships represent a person's relationship to a team. Use this API to\n * list members of any team that you're in or create memberships to invite\n * someone to a team. Team memberships can also be updated to make someone a\n * moderator or deleted to remove them from the team.\n *\n * Just like in the Webex app, you must be a member of the team in order to list\n * its memberships or invite people.\n * @class\n */\nconst TeamMemberships = WebexPlugin.extend({\n /**\n * Add someone to a team by Person ID or email address; optionally making them\n * a moderator.\n * @instance\n * @memberof TeamMemberships\n * @param {TeamMembershipObject} membership\n * @returns {Promise<TeamMembershipObject>}\n * @example\n * webex.teams.create({name: 'Create Team Membership Example'})\n * .then(function(team) {\n * return webex.teamMemberships.create({\n * personEmail: 'alice@example.com',\n * teamId: team.id\n * });\n * })\n * .then(function(membership) {\n * var assert = require('assert');\n * assert(membership.id);\n * assert(membership.teamId);\n * assert(membership.personId);\n * assert(membership.personEmail);\n * assert('isModerator' in membership);\n * assert(membership.created);\n * return 'success';\n * });\n * // => success\n */\n create(membership) {\n return this.request({\n method: 'POST',\n service: 'hydra',\n resource: 'team/memberships',\n body: membership,\n }).then((res) => res.body);\n },\n\n /**\n * Get details for a membership by ID.\n * @instance\n * @memberof TeamMemberships\n * @param {TeamMembershipObject|string} membership\n * @returns {Promise<TeamMembershipObject>}\n * @example\n * var membership;\n * webex.teams.create({name: 'Get Team Memberships Example'})\n * .then(function(team) {\n * return webex.teamMemberships.create({\n * personEmail: 'alice@example.com',\n * teamId: team.id\n * });\n * })\n * .then(function(m) {\n * membership = m;\n * return webex.teamMemberships.get(m.id);\n * })\n * .then(function(m) {\n * var assert = require('assert');\n * assert.deepEqual(m, membership);\n * return 'success';\n * });\n * // => success\n */\n get(membership) {\n const id = membership.id || membership;\n\n return this.request({\n service: 'hydra',\n resource: `team/memberships/${id}`,\n }).then((res) => res.body.items || res.body);\n },\n\n /**\n * Lists all team memberships. By default, lists memberships for teams to\n * which the authenticated user belongs.\n * @instance\n * @memberof TeamMemberships\n * @param {Object} options\n * @param {string} options.max\n * @returns {[type]}\n * @example\n * var team;\n * webex.teams.create({name: 'List Team Memberships Example'})\n * .then(function(t) {\n * team = t;\n * return webex.teamMemberships.create({\n * personEmail: 'alice@example.com',\n * teamId: team.id\n * });\n * })\n * .then(function() {\n * return webex.teamMemberships.list({teamId: team.id});\n * })\n * .then(function(teamMemberships) {\n * var assert = require('assert');\n * assert.equal(teamMemberships.length, 2);\n * for (var i = 0; i < teamMemberships.length; i+= 1) {\n * assert.equal(teamMemberships.items[i].teamId, team.id);\n * }\n * return 'success';\n * });\n * // => success\n */\n list(options) {\n return this.request({\n service: 'hydra',\n resource: 'team/memberships',\n qs: options,\n }).then((res) => new Page(res, this.webex));\n },\n\n /**\n * Deletes a membership by ID.\n * @instance\n * @memberof TeamMemberships\n * @param {TeamMembershipObject|string} membership\n * @returns {Promise}\n * @example\n * var membership, team;\n * webex.teams.create({name: 'Remove Team Memberships Example'})\n * .then(function(t) {\n * team = t;\n * return webex.teamMemberships.create({\n * personEmail: 'alice@example.com',\n * teamId: team.id\n * });\n * })\n * .then(function(m) {\n * membership = m;\n * return webex.teamMemberships.list({teamId: team.id});\n * })\n * .then(function(teamMemberships) {\n * var assert = require('assert');\n * assert.equal(teamMemberships.length, 2);\n * return webex.teamMemberships.remove(membership);\n * })\n * .then(function() {\n * return webex.teamMemberships.list({teamId: team.id});\n * })\n * .then(function(teamMemberships) {\n * var assert = require('assert');\n * assert.equal(teamMemberships.length, 1);\n * return 'success';\n * });\n * // => success\n */\n remove(membership) {\n const id = membership.id || membership;\n\n return this.request({\n method: 'DELETE',\n service: 'hydra',\n resource: `team/memberships/${id}`,\n }).then((res) => {\n // Firefox has some issues with 204s and/or DELETE. This should move to\n // http-core\n if (res.statusCode === 204) {\n return undefined;\n }\n\n return res.body;\n });\n },\n\n /**\n * Updates properties for a membership.\n * @instance\n * @memberof TeamMemberships\n * @param {TeamMembershipObject} membership\n * @returns {Promise<TeamMembershipObject>}\n */\n update(membership) {\n const id = membership.id || membership;\n\n return this.request({\n method: 'PUT',\n service: 'hydra',\n resource: `team/memberships/${id}`,\n body: membership,\n }).then((res) => res.body);\n },\n});\n\nexport default TeamMemberships;\n"],"mappings":";;;;;;;AAIA;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMA,eAAe,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACzC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,MAAM,kBAACC,UAAU,EAAE;IACjB,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,OAAO;MAChBC,QAAQ,EAAE,kBAAkB;MAC5BC,IAAI,EAAEL;IACR,CAAC,CAAC,CAACM,IAAI,CAAC,UAACC,GAAG;MAAA,OAAKA,GAAG,CAACF,IAAI;IAAA,EAAC;EAC5B,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,GAAG,eAACR,UAAU,EAAE;IACd,IAAMS,EAAE,GAAGT,UAAU,CAACS,EAAE,IAAIT,UAAU;IAEtC,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBE,OAAO,EAAE,OAAO;MAChBC,QAAQ,6BAAsBK,EAAE;IAClC,CAAC,CAAC,CAACH,IAAI,CAAC,UAACC,GAAG;MAAA,OAAKA,GAAG,CAACF,IAAI,CAACK,KAAK,IAAIH,GAAG,CAACF,IAAI;IAAA,EAAC;EAC9C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,IAAI,gBAACC,OAAO,EAAE;IAAA;IACZ,OAAO,IAAI,CAACX,OAAO,CAAC;MAClBE,OAAO,EAAE,OAAO;MAChBC,QAAQ,EAAE,kBAAkB;MAC5BS,EAAE,EAAED;IACN,CAAC,CAAC,CAACN,IAAI,CAAC,UAACC,GAAG;MAAA,OAAK,IAAIO,eAAI,CAACP,GAAG,EAAE,KAAI,CAACQ,KAAK,CAAC;IAAA,EAAC;EAC7C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,MAAM,kBAAChB,UAAU,EAAE;IACjB,IAAMS,EAAE,GAAGT,UAAU,CAACS,EAAE,IAAIT,UAAU;IAEtC,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBC,MAAM,EAAE,QAAQ;MAChBC,OAAO,EAAE,OAAO;MAChBC,QAAQ,6BAAsBK,EAAE;IAClC,CAAC,CAAC,CAACH,IAAI,CAAC,UAACC,GAAG,EAAK;MACf;MACA;MACA,IAAIA,GAAG,CAACU,UAAU,KAAK,GAAG,EAAE;QAC1B,OAAOC,SAAS;MAClB;MAEA,OAAOX,GAAG,CAACF,IAAI;IACjB,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEc,MAAM,kBAACnB,UAAU,EAAE;IACjB,IAAMS,EAAE,GAAGT,UAAU,CAACS,EAAE,IAAIT,UAAU;IAEtC,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBC,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,OAAO;MAChBC,QAAQ,6BAAsBK,EAAE,CAAE;MAClCJ,IAAI,EAAEL;IACR,CAAC,CAAC,CAACM,IAAI,CAAC,UAACC,GAAG;MAAA,OAAKA,GAAG,CAACF,IAAI;IAAA,EAAC;EAC5B,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEYT,eAAe;AAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
|
|
2
|
+
// It should be published with your NPM package. It should not be tracked by Git.
|
|
3
|
+
{
|
|
4
|
+
"tsdocVersion": "0.12",
|
|
5
|
+
"toolPackages": [
|
|
6
|
+
{
|
|
7
|
+
"packageName": "@microsoft/api-extractor",
|
|
8
|
+
"packageVersion": "7.34.4"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export default TeamMemberships;
|
|
2
|
+
export type TeamMembershipObject = {
|
|
3
|
+
/**
|
|
4
|
+
* - (server generated) Unique identifier for the team membership
|
|
5
|
+
*/
|
|
6
|
+
id: string;
|
|
7
|
+
/**
|
|
8
|
+
* - The team ID
|
|
9
|
+
*/
|
|
10
|
+
teamId: string;
|
|
11
|
+
/**
|
|
12
|
+
* - The person ID
|
|
13
|
+
*/
|
|
14
|
+
personId: string;
|
|
15
|
+
/**
|
|
16
|
+
* - The email address of the person
|
|
17
|
+
*/
|
|
18
|
+
personEmail: string;
|
|
19
|
+
/**
|
|
20
|
+
* - Set to `true` to make the person a team
|
|
21
|
+
* moderator
|
|
22
|
+
*/
|
|
23
|
+
isModerator: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* - (server generated) The date and time that the team membership was created
|
|
26
|
+
*/
|
|
27
|
+
created: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* @typedef {Object} TeamMembershipObject
|
|
31
|
+
* @property {string} id - (server generated) Unique identifier for the team membership
|
|
32
|
+
* @property {string} teamId - The team ID
|
|
33
|
+
* @property {string} personId - The person ID
|
|
34
|
+
* @property {string} personEmail - The email address of the person
|
|
35
|
+
* @property {boolean} isModerator - Set to `true` to make the person a team
|
|
36
|
+
* moderator
|
|
37
|
+
* @property {string} created - (server generated) The date and time that the team membership was created
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* Team Memberships represent a person's relationship to a team. Use this API to
|
|
41
|
+
* list members of any team that you're in or create memberships to invite
|
|
42
|
+
* someone to a team. Team memberships can also be updated to make someone a
|
|
43
|
+
* moderator or deleted to remove them from the team.
|
|
44
|
+
*
|
|
45
|
+
* Just like in the Webex app, you must be a member of the team in order to list
|
|
46
|
+
* its memberships or invite people.
|
|
47
|
+
* @class
|
|
48
|
+
*/
|
|
49
|
+
declare const TeamMemberships: any;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/plugin-team-memberships",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-bnr.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
]
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@webex/test-helper-chai": "3.0.0-
|
|
24
|
-
"@webex/test-helper-test-users": "3.0.0-
|
|
23
|
+
"@webex/test-helper-chai": "3.0.0-bnr.0",
|
|
24
|
+
"@webex/test-helper-test-users": "3.0.0-bnr.0",
|
|
25
25
|
"sinon": "^9.2.4"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@webex/internal-plugin-device": "3.0.0-
|
|
29
|
-
"@webex/plugin-logger": "3.0.0-
|
|
30
|
-
"@webex/plugin-rooms": "3.0.0-
|
|
31
|
-
"@webex/plugin-team-memberships": "3.0.0-
|
|
32
|
-
"@webex/plugin-teams": "3.0.0-
|
|
33
|
-
"@webex/webex-core": "3.0.0-
|
|
28
|
+
"@webex/internal-plugin-device": "3.0.0-bnr.0",
|
|
29
|
+
"@webex/plugin-logger": "3.0.0-bnr.0",
|
|
30
|
+
"@webex/plugin-rooms": "3.0.0-bnr.0",
|
|
31
|
+
"@webex/plugin-team-memberships": "3.0.0-bnr.0",
|
|
32
|
+
"@webex/plugin-teams": "3.0.0-bnr.0",
|
|
33
|
+
"@webex/webex-core": "3.0.0-bnr.0"
|
|
34
34
|
}
|
|
35
35
|
}
|
package/src/team-memberships.js
CHANGED
|
@@ -58,9 +58,8 @@ const TeamMemberships = WebexPlugin.extend({
|
|
|
58
58
|
method: 'POST',
|
|
59
59
|
service: 'hydra',
|
|
60
60
|
resource: 'team/memberships',
|
|
61
|
-
body: membership
|
|
62
|
-
})
|
|
63
|
-
.then((res) => res.body);
|
|
61
|
+
body: membership,
|
|
62
|
+
}).then((res) => res.body);
|
|
64
63
|
},
|
|
65
64
|
|
|
66
65
|
/**
|
|
@@ -94,9 +93,8 @@ const TeamMemberships = WebexPlugin.extend({
|
|
|
94
93
|
|
|
95
94
|
return this.request({
|
|
96
95
|
service: 'hydra',
|
|
97
|
-
resource: `team/memberships/${id}
|
|
98
|
-
})
|
|
99
|
-
.then((res) => res.body.items || res.body);
|
|
96
|
+
resource: `team/memberships/${id}`,
|
|
97
|
+
}).then((res) => res.body.items || res.body);
|
|
100
98
|
},
|
|
101
99
|
|
|
102
100
|
/**
|
|
@@ -134,9 +132,8 @@ const TeamMemberships = WebexPlugin.extend({
|
|
|
134
132
|
return this.request({
|
|
135
133
|
service: 'hydra',
|
|
136
134
|
resource: 'team/memberships',
|
|
137
|
-
qs: options
|
|
138
|
-
})
|
|
139
|
-
.then((res) => new Page(res, this.webex));
|
|
135
|
+
qs: options,
|
|
136
|
+
}).then((res) => new Page(res, this.webex));
|
|
140
137
|
},
|
|
141
138
|
|
|
142
139
|
/**
|
|
@@ -180,17 +177,16 @@ const TeamMemberships = WebexPlugin.extend({
|
|
|
180
177
|
return this.request({
|
|
181
178
|
method: 'DELETE',
|
|
182
179
|
service: 'hydra',
|
|
183
|
-
resource: `team/memberships/${id}
|
|
184
|
-
})
|
|
185
|
-
.
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
180
|
+
resource: `team/memberships/${id}`,
|
|
181
|
+
}).then((res) => {
|
|
182
|
+
// Firefox has some issues with 204s and/or DELETE. This should move to
|
|
183
|
+
// http-core
|
|
184
|
+
if (res.statusCode === 204) {
|
|
185
|
+
return undefined;
|
|
186
|
+
}
|
|
191
187
|
|
|
192
|
-
|
|
193
|
-
|
|
188
|
+
return res.body;
|
|
189
|
+
});
|
|
194
190
|
},
|
|
195
191
|
|
|
196
192
|
/**
|
|
@@ -207,10 +203,9 @@ const TeamMemberships = WebexPlugin.extend({
|
|
|
207
203
|
method: 'PUT',
|
|
208
204
|
service: 'hydra',
|
|
209
205
|
resource: `team/memberships/${id}`,
|
|
210
|
-
body: membership
|
|
211
|
-
})
|
|
212
|
-
|
|
213
|
-
}
|
|
206
|
+
body: membership,
|
|
207
|
+
}).then((res) => res.body);
|
|
208
|
+
},
|
|
214
209
|
});
|
|
215
210
|
|
|
216
211
|
export default TeamMemberships;
|
|
@@ -17,10 +17,11 @@ describe('plugin-team-memberships', function () {
|
|
|
17
17
|
|
|
18
18
|
let webex;
|
|
19
19
|
|
|
20
|
-
before(() =>
|
|
21
|
-
.then(([user]) => {
|
|
20
|
+
before(() =>
|
|
21
|
+
testUsers.create({count: 1}).then(([user]) => {
|
|
22
22
|
webex = new WebexCore({credentials: user.token});
|
|
23
|
-
})
|
|
23
|
+
})
|
|
24
|
+
);
|
|
24
25
|
|
|
25
26
|
describe('#teams', () => {
|
|
26
27
|
describe('#memberships', () => {
|
|
@@ -30,179 +31,209 @@ describe('plugin-team-memberships', function () {
|
|
|
30
31
|
|
|
31
32
|
let user1;
|
|
32
33
|
|
|
33
|
-
before(() =>
|
|
34
|
-
.then((users) => {
|
|
34
|
+
before(() =>
|
|
35
|
+
testUsers.create({count: 1}).then((users) => {
|
|
35
36
|
user1 = users[0];
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
37
|
+
})
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
before(() =>
|
|
41
|
+
webex.teams
|
|
42
|
+
.create({
|
|
43
|
+
name: 'Webex Team Test',
|
|
44
|
+
})
|
|
45
|
+
.then((t) => {
|
|
46
|
+
team = t;
|
|
47
|
+
|
|
48
|
+
return webex.rooms.create({
|
|
49
|
+
title: 'Webex Team Room Test',
|
|
50
|
+
teamId: team.id,
|
|
51
|
+
});
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
afterEach(() =>
|
|
56
|
+
Promise.all(
|
|
57
|
+
memberships.map((membership) =>
|
|
58
|
+
webex.teamMemberships.remove(membership).catch((reason) => {
|
|
59
|
+
console.error('Failed to delete membership', reason);
|
|
60
|
+
})
|
|
61
|
+
)
|
|
62
|
+
).then(() => {
|
|
55
63
|
while (memberships.length) {
|
|
56
64
|
memberships.pop();
|
|
57
65
|
}
|
|
58
|
-
})
|
|
66
|
+
})
|
|
67
|
+
);
|
|
59
68
|
|
|
60
69
|
describe('#create()', () => {
|
|
61
|
-
it('adds a person to a team by user id', () =>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
personEmail: user1.email,
|
|
73
|
-
teamId: team.id
|
|
74
|
-
})
|
|
75
|
-
.then((membership) => {
|
|
76
|
-
memberships.push(membership);
|
|
77
|
-
assert.isTeamMembership(membership);
|
|
78
|
-
assert.equal(membership.teamId, team.id);
|
|
79
|
-
}));
|
|
80
|
-
|
|
81
|
-
it('adds a person to a team as a moderator', () => webex.teamMemberships.create({
|
|
82
|
-
personId: user1.id,
|
|
83
|
-
teamId: team.id,
|
|
84
|
-
isModerator: true
|
|
85
|
-
})
|
|
86
|
-
.then((membership) => {
|
|
87
|
-
memberships.push(membership);
|
|
88
|
-
assert.isTeamMembership(membership);
|
|
89
|
-
assert.equal(membership.teamId, team.id);
|
|
90
|
-
assert.isTrue(membership.isModerator);
|
|
70
|
+
it('adds a person to a team by user id', () =>
|
|
71
|
+
webex.teamMemberships
|
|
72
|
+
.create({
|
|
73
|
+
personId: user1.id,
|
|
74
|
+
teamId: team.id,
|
|
75
|
+
})
|
|
76
|
+
.then((membership) => {
|
|
77
|
+
memberships.push(membership);
|
|
78
|
+
assert.isTeamMembership(membership);
|
|
79
|
+
assert.equal(membership.teamId, team.id);
|
|
80
|
+
}));
|
|
91
81
|
|
|
92
|
-
|
|
93
|
-
|
|
82
|
+
it('adds a person to a team by user email', () =>
|
|
83
|
+
webex.teamMemberships
|
|
84
|
+
.create({
|
|
85
|
+
personEmail: user1.email,
|
|
86
|
+
teamId: team.id,
|
|
87
|
+
})
|
|
88
|
+
.then((membership) => {
|
|
89
|
+
memberships.push(membership);
|
|
90
|
+
assert.isTeamMembership(membership);
|
|
91
|
+
assert.equal(membership.teamId, team.id);
|
|
92
|
+
}));
|
|
93
|
+
|
|
94
|
+
it('adds a person to a team as a moderator', () =>
|
|
95
|
+
webex.teamMemberships
|
|
96
|
+
.create({
|
|
97
|
+
personId: user1.id,
|
|
98
|
+
teamId: team.id,
|
|
99
|
+
isModerator: true,
|
|
100
|
+
})
|
|
101
|
+
.then((membership) => {
|
|
102
|
+
memberships.push(membership);
|
|
103
|
+
assert.isTeamMembership(membership);
|
|
104
|
+
assert.equal(membership.teamId, team.id);
|
|
105
|
+
assert.isTrue(membership.isModerator);
|
|
106
|
+
|
|
107
|
+
// prevent this test from breaking other tests
|
|
108
|
+
membership.isModerator = false;
|
|
94
109
|
|
|
95
|
-
|
|
96
|
-
|
|
110
|
+
return webex.teamMemberships.update(membership);
|
|
111
|
+
}));
|
|
97
112
|
});
|
|
98
113
|
|
|
99
114
|
describe('#get()', () => {
|
|
100
|
-
it('retrieves a single team membership', () =>
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
115
|
+
it('retrieves a single team membership', () =>
|
|
116
|
+
webex.teamMemberships
|
|
117
|
+
.create({
|
|
118
|
+
personId: user1.id,
|
|
119
|
+
teamId: team.id,
|
|
120
|
+
})
|
|
121
|
+
.then((membership) =>
|
|
122
|
+
webex.teamMemberships.get(membership).then((m) => {
|
|
123
|
+
memberships.push(m);
|
|
124
|
+
assert.isTeamMembership(m);
|
|
125
|
+
// Skipping equality assertiong for now due to create date
|
|
126
|
+
// mismatch
|
|
127
|
+
// assert.deepEqual(m, membership);
|
|
128
|
+
})
|
|
129
|
+
));
|
|
112
130
|
});
|
|
113
131
|
|
|
114
132
|
describe('#list()', () => {
|
|
115
133
|
let user2, user3;
|
|
116
134
|
|
|
117
|
-
before(() =>
|
|
118
|
-
.then((users) => {
|
|
135
|
+
before(() =>
|
|
136
|
+
testUsers.create({count: 3}).then((users) => {
|
|
119
137
|
[user2, user3] = users;
|
|
120
|
-
}));
|
|
121
|
-
|
|
122
|
-
before(() => Promise.all([
|
|
123
|
-
webex.teamMemberships.create({
|
|
124
|
-
personId: user2.id,
|
|
125
|
-
teamId: team.id
|
|
126
|
-
}),
|
|
127
|
-
webex.teamMemberships.create({
|
|
128
|
-
personId: user3.id,
|
|
129
|
-
teamId: team.id
|
|
130
138
|
})
|
|
131
|
-
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
before(() =>
|
|
142
|
+
Promise.all([
|
|
143
|
+
webex.teamMemberships.create({
|
|
144
|
+
personId: user2.id,
|
|
145
|
+
teamId: team.id,
|
|
146
|
+
}),
|
|
147
|
+
webex.teamMemberships.create({
|
|
148
|
+
personId: user3.id,
|
|
149
|
+
teamId: team.id,
|
|
150
|
+
}),
|
|
151
|
+
])
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
it('retrieves all memberships for a team', () =>
|
|
155
|
+
webex.teamMemberships
|
|
156
|
+
.list({
|
|
157
|
+
teamId: team.id,
|
|
158
|
+
})
|
|
159
|
+
.then((memberships) => {
|
|
160
|
+
assert.isAbove(memberships.length, 2);
|
|
161
|
+
for (const membership of memberships) {
|
|
162
|
+
assert.isTeamMembership(membership);
|
|
163
|
+
assert.equal(membership.teamId, team.id);
|
|
164
|
+
}
|
|
165
|
+
}));
|
|
132
166
|
|
|
133
|
-
it('retrieves
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
}));
|
|
167
|
+
it('retrieves a bounded set of memberships for a team', () =>
|
|
168
|
+
webex.teamMemberships
|
|
169
|
+
.list({
|
|
170
|
+
max: 1,
|
|
171
|
+
teamId: team.id,
|
|
172
|
+
})
|
|
173
|
+
.then((memberships) => {
|
|
174
|
+
const spy = sinon.spy();
|
|
143
175
|
|
|
144
|
-
|
|
145
|
-
max: 1,
|
|
146
|
-
teamId: team.id
|
|
147
|
-
})
|
|
148
|
-
.then((memberships) => {
|
|
149
|
-
const spy = sinon.spy();
|
|
176
|
+
assert.lengthOf(memberships, 1);
|
|
150
177
|
|
|
151
|
-
|
|
178
|
+
return (function f(page) {
|
|
179
|
+
for (const membership of page) {
|
|
180
|
+
assert.isTeamMembership(membership);
|
|
181
|
+
spy(membership.id);
|
|
182
|
+
}
|
|
152
183
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
spy(membership.id);
|
|
157
|
-
}
|
|
184
|
+
if (page.hasNext()) {
|
|
185
|
+
return page.next().then(f);
|
|
186
|
+
}
|
|
158
187
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return Promise.resolve();
|
|
164
|
-
}(memberships))
|
|
165
|
-
.then(() => {
|
|
188
|
+
return Promise.resolve();
|
|
189
|
+
})(memberships).then(() => {
|
|
166
190
|
assert.calledThrice(spy);
|
|
167
191
|
});
|
|
168
|
-
|
|
192
|
+
}));
|
|
169
193
|
});
|
|
170
194
|
|
|
171
195
|
describe('#update()', () => {
|
|
172
|
-
it(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
196
|
+
it("updates the membership's moderator status", () =>
|
|
197
|
+
webex.teamMemberships
|
|
198
|
+
.create({
|
|
199
|
+
personId: user1.id,
|
|
200
|
+
teamId: team.id,
|
|
201
|
+
})
|
|
202
|
+
.then((membership) => {
|
|
203
|
+
memberships.push(membership);
|
|
204
|
+
assert.notOk(membership.isModerator);
|
|
205
|
+
membership.isModerator = true;
|
|
180
206
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
207
|
+
return webex.teamMemberships.update(membership);
|
|
208
|
+
})
|
|
209
|
+
.then((membership) => {
|
|
210
|
+
assert.isTrue(membership.isModerator);
|
|
211
|
+
membership.isModerator = false;
|
|
186
212
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
213
|
+
return webex.teamMemberships.update(membership);
|
|
214
|
+
})
|
|
215
|
+
.then((membership) => assert.isFalse(membership.isModerator)));
|
|
190
216
|
});
|
|
191
217
|
|
|
192
218
|
describe('#remove()', () => {
|
|
193
|
-
it('deletes a single membership', () =>
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
.then((body) => {
|
|
199
|
-
assert.notOk(body);
|
|
200
|
-
|
|
201
|
-
return webex.teamMemberships.list({teamId: team.id});
|
|
219
|
+
it('deletes a single membership', () =>
|
|
220
|
+
webex.teamMemberships
|
|
221
|
+
.create({
|
|
222
|
+
personId: user1.id,
|
|
223
|
+
teamId: team.id,
|
|
202
224
|
})
|
|
203
|
-
.then((
|
|
204
|
-
|
|
205
|
-
|
|
225
|
+
.then((membership) =>
|
|
226
|
+
webex.teamMemberships
|
|
227
|
+
.remove(membership)
|
|
228
|
+
.then((body) => {
|
|
229
|
+
assert.notOk(body);
|
|
230
|
+
|
|
231
|
+
return webex.teamMemberships.list({teamId: team.id});
|
|
232
|
+
})
|
|
233
|
+
.then((memberships) => {
|
|
234
|
+
assert.notInclude(memberships, membership);
|
|
235
|
+
})
|
|
236
|
+
));
|
|
206
237
|
});
|
|
207
238
|
});
|
|
208
239
|
});
|