zaccl 3.0.18 → 4.1.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.
Files changed (68) hide show
  1. package/docs/ECatCloudRecording.js.html +69 -26
  2. package/docs/ECatGroup.js.html +213 -0
  3. package/docs/ECatMeeting.js.html +79 -11
  4. package/docs/ECatUser.js.html +7 -10
  5. package/docs/ECatWebinar.js.html +6 -5
  6. package/docs/api.cloudRecording.html +368 -28
  7. package/docs/api.group.html +396 -0
  8. package/docs/api.meeting.html +466 -15
  9. package/docs/api.user.html +10 -10
  10. package/docs/api.webinar.html +5 -5
  11. package/docs/index.html +1 -1
  12. package/lib/endpoints/ECatCloudRecording.d.ts +34 -8
  13. package/lib/endpoints/ECatCloudRecording.js +68 -25
  14. package/lib/endpoints/ECatCloudRecording.js.map +1 -1
  15. package/lib/endpoints/ECatGroup.d.ts +45 -0
  16. package/lib/endpoints/ECatGroup.js +148 -0
  17. package/lib/endpoints/ECatGroup.js.map +1 -0
  18. package/lib/endpoints/ECatMeeting.d.ts +43 -10
  19. package/lib/endpoints/ECatMeeting.js +78 -10
  20. package/lib/endpoints/ECatMeeting.js.map +1 -1
  21. package/lib/endpoints/ECatUser.d.ts +5 -5
  22. package/lib/endpoints/ECatUser.js +6 -9
  23. package/lib/endpoints/ECatUser.js.map +1 -1
  24. package/lib/endpoints/ECatWebinar.d.ts +4 -4
  25. package/lib/endpoints/ECatWebinar.js +5 -4
  26. package/lib/endpoints/ECatWebinar.js.map +1 -1
  27. package/lib/index.d.ts +22 -0
  28. package/lib/index.js +19 -0
  29. package/lib/index.js.map +1 -1
  30. package/lib/shared/helpers/genVisitEndpoint.js +154 -81
  31. package/lib/shared/helpers/genVisitEndpoint.js.map +1 -1
  32. package/lib/shared/types/VisitEndpointFunc.d.ts +3 -1
  33. package/lib/types/ZoomAPI.d.ts +2 -0
  34. package/lib/types/ZoomAPI.js.map +1 -1
  35. package/lib/types/ZoomGroup.d.ts +10 -0
  36. package/lib/types/ZoomGroup.js +3 -0
  37. package/lib/types/ZoomGroup.js.map +1 -0
  38. package/lib/types/ZoomGroupMember.d.ts +12 -0
  39. package/lib/types/ZoomGroupMember.js +3 -0
  40. package/lib/types/ZoomGroupMember.js.map +1 -0
  41. package/lib/types/ZoomMeetingTranscript.d.ts +17 -0
  42. package/lib/types/ZoomMeetingTranscript.js +3 -0
  43. package/lib/types/ZoomMeetingTranscript.js.map +1 -0
  44. package/lib/types/ZoomPastMeetingDetails.d.ts +22 -0
  45. package/lib/types/ZoomPastMeetingDetails.js +3 -0
  46. package/lib/types/ZoomPastMeetingDetails.js.map +1 -0
  47. package/lib/types/ZoomPastMeetingParticipant.d.ts +18 -0
  48. package/lib/types/ZoomPastMeetingParticipant.js +3 -0
  49. package/lib/types/ZoomPastMeetingParticipant.js.map +1 -0
  50. package/lib/types/ZoomRecordingInAccount.d.ts +22 -0
  51. package/lib/types/ZoomRecordingInAccount.js +3 -0
  52. package/lib/types/ZoomRecordingInAccount.js.map +1 -0
  53. package/package.json +2 -2
  54. package/src/endpoints/ECatCloudRecording.ts +83 -29
  55. package/src/endpoints/ECatGroup.ts +97 -0
  56. package/src/endpoints/ECatMeeting.ts +85 -10
  57. package/src/endpoints/ECatUser.ts +6 -9
  58. package/src/endpoints/ECatWebinar.ts +5 -4
  59. package/src/index.ts +53 -0
  60. package/src/shared/helpers/genVisitEndpoint.ts +143 -77
  61. package/src/shared/types/VisitEndpointFunc.ts +6 -2
  62. package/src/types/ZoomAPI.ts +2 -0
  63. package/src/types/ZoomGroup.ts +14 -0
  64. package/src/types/ZoomGroupMember.ts +20 -0
  65. package/src/types/ZoomMeetingTranscript.ts +28 -0
  66. package/src/types/ZoomPastMeetingDetails.ts +38 -0
  67. package/src/types/ZoomPastMeetingParticipant.ts +30 -0
  68. package/src/types/ZoomRecordingInAccount.ts +38 -0
@@ -27,7 +27,7 @@
27
27
 
28
28
  <nav style="border-right: 2px solid #ccc; padding-bottom: 25px;" >
29
29
 
30
- <h2><a style="font-size: 30px;" href="index.html">ZACCL API</a></h2><h3>Endpoint Functions</h3><ul><li><a href="api.cloudRecording.html">api.cloudRecording</a><ul class='methods'><li data-type='method'><a href="api.cloudRecording.html#listMeetingRecordings">listMeetingRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listUserRecordings">listUserRecordings</a></li></ul></li><li><a href="api.meeting.html">api.meeting</a><ul class='methods'><li data-type='method'><a href="api.meeting.html#addAltHost">addAltHost</a></li><li data-type='method'><a href="api.meeting.html#create">create</a></li><li data-type='method'><a href="api.meeting.html#delete">delete</a></li><li data-type='method'><a href="api.meeting.html#get">get</a></li><li data-type='method'><a href="api.meeting.html#getPastMeetingDetails">getPastMeetingDetails</a></li><li data-type='method'><a href="api.meeting.html#getPollInfo">getPollInfo</a></li><li data-type='method'><a href="api.meeting.html#listPastInstances">listPastInstances</a></li><li data-type='method'><a href="api.meeting.html#listPastPollOccurrences">listPastPollOccurrences</a></li><li data-type='method'><a href="api.meeting.html#update">update</a></li></ul></li><li><a href="api.user.html">api.user</a><ul class='methods'><li data-type='method'><a href="api.user.html#activate">activate</a></li><li data-type='method'><a href="api.user.html#addWebinarLicense">addWebinarLicense</a></li><li data-type='method'><a href="api.user.html#get">get</a></li><li data-type='method'><a href="api.user.html#getZAKToken">getZAKToken</a></li><li data-type='method'><a href="api.user.html#promoteToLicensed">promoteToLicensed</a></li></ul></li><li><a href="api.webinar.html">api.webinar</a><ul class='methods'><li data-type='method'><a href="api.webinar.html#addPanelist">addPanelist</a></li><li data-type='method'><a href="api.webinar.html#create">create</a></li><li data-type='method'><a href="api.webinar.html#get">get</a></li><li data-type='method'><a href="api.webinar.html#listPanelists">listPanelists</a></li></ul></li></ul>
30
+ <h2><a style="font-size: 30px;" href="index.html">ZACCL API</a></h2><h3>Endpoint Functions</h3><ul><li><a href="api.cloudRecording.html">api.cloudRecording</a><ul class='methods'><li data-type='method'><a href="api.cloudRecording.html#listAccountRecordings">listAccountRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listMeetingRecordings">listMeetingRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listUserRecordings">listUserRecordings</a></li></ul></li><li><a href="api.group.html">api.group</a><ul class='methods'><li data-type='method'><a href="api.group.html#listGroupMembers">listGroupMembers</a></li></ul></li><li><a href="api.meeting.html">api.meeting</a><ul class='methods'><li data-type='method'><a href="api.meeting.html#addAltHost">addAltHost</a></li><li data-type='method'><a href="api.meeting.html#create">create</a></li><li data-type='method'><a href="api.meeting.html#delete">delete</a></li><li data-type='method'><a href="api.meeting.html#get">get</a></li><li data-type='method'><a href="api.meeting.html#getPastMeetingDetails">getPastMeetingDetails</a></li><li data-type='method'><a href="api.meeting.html#getPollInfo">getPollInfo</a></li><li data-type='method'><a href="api.meeting.html#getTranscript">getTranscript</a></li><li data-type='method'><a href="api.meeting.html#listPastInstances">listPastInstances</a></li><li data-type='method'><a href="api.meeting.html#listPastMeetingParticipants">listPastMeetingParticipants</a></li><li data-type='method'><a href="api.meeting.html#listPastPollOccurrences">listPastPollOccurrences</a></li><li data-type='method'><a href="api.meeting.html#update">update</a></li></ul></li><li><a href="api.user.html">api.user</a><ul class='methods'><li data-type='method'><a href="api.user.html#activate">activate</a></li><li data-type='method'><a href="api.user.html#addWebinarLicense">addWebinarLicense</a></li><li data-type='method'><a href="api.user.html#get">get</a></li><li data-type='method'><a href="api.user.html#getZAKToken">getZAKToken</a></li><li data-type='method'><a href="api.user.html#promoteToLicensed">promoteToLicensed</a></li></ul></li><li><a href="api.webinar.html">api.webinar</a><ul class='methods'><li data-type='method'><a href="api.webinar.html#addPanelist">addPanelist</a></li><li data-type='method'><a href="api.webinar.html#create">create</a></li><li data-type='method'><a href="api.webinar.html#get">get</a></li><li data-type='method'><a href="api.webinar.html#listPanelists">listPanelists</a></li></ul></li></ul>
31
31
  </nav>
32
32
 
33
33
  <div id="main">
@@ -114,7 +114,65 @@ var ECatCloudRecording = /** @class */ (function (_super) {
114
114
  return _super !== null &amp;&amp; _super.apply(this, arguments) || this;
115
115
  }
116
116
  /**
117
- * Get all recordings of a meeting
117
+ * List recordings in the account (Medium)
118
+ * @author Gabe Abrams
119
+ * @instance
120
+ * @memberof api.cloudRecording
121
+ * @method listAccountRecordings
122
+ * @param opts object containing all arguments
123
+ * @param opts.fromYear the start of the date range to list recordings for (e.g. 2026)
124
+ * @param opts.fromMonth the month of the date range to list recordings for (1-12)
125
+ * @param [opts.fromDay] the day of the month of the date range to list recordings for (1-31, defaults to 1)
126
+ * @param [opts.accountId] the account ID of the account of interest (defaults to the account
127
+ * associated with the current access)
128
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
129
+ * The function is passed the new page of results as an argument.
130
+ * @param [opts.minMsBetweenPageRequests] minimum time (in ms) to wait between paginated requests,
131
+ * for custom throttle control
132
+ * @returns the list of recordings in the account
133
+ */
134
+ ECatCloudRecording.prototype.listAccountRecordings = function (opts) {
135
+ var _a, _b;
136
+ return __awaiter(this, void 0, void 0, function () {
137
+ var fromYear, fromMonth, minMsBetweenPageRequests, fromMonthPadded, fromDay, fromDayPadded, fromDateString, toYear, toMonth, toMonthPadded, toDay, toDayPadded, toDateString;
138
+ return __generator(this, function (_c) {
139
+ fromYear = opts.fromYear, fromMonth = opts.fromMonth, minMsBetweenPageRequests = opts.minMsBetweenPageRequests;
140
+ fromMonthPadded = fromMonth &lt; 10 ? "0".concat(fromMonth) : fromMonth;
141
+ fromDay = (_a = opts.fromDay) !== null &amp;&amp; _a !== void 0 ? _a : 1;
142
+ fromDayPadded = fromDay &lt; 10 ? "0".concat(fromDay) : fromDay;
143
+ fromDateString = "".concat(fromYear, "-").concat(fromMonthPadded, "-").concat(fromDayPadded);
144
+ toYear = fromYear;
145
+ toMonth = opts.fromMonth + 1;
146
+ if (toMonth > 12) {
147
+ toMonth = 1;
148
+ toYear += 1;
149
+ }
150
+ toMonthPadded = toMonth &lt; 10 ? "0".concat(toMonth) : toMonth;
151
+ toDay = fromDay;
152
+ toDayPadded = toDay &lt; 10 ? "0".concat(toDay) : toDay;
153
+ toDateString = "".concat(toYear, "-").concat(toMonthPadded, "-").concat(toDayPadded);
154
+ return [2 /*return*/, this.visitEndpoint({
155
+ path: "/accounts/".concat((_b = opts.accountId) !== null &amp;&amp; _b !== void 0 ? _b : 'me', "/recordings"),
156
+ action: 'list recordings in the account',
157
+ method: 'GET',
158
+ params: {
159
+ page_size: 300,
160
+ from: fromDateString,
161
+ to: toDateString,
162
+ },
163
+ onNewPage: opts.onNewPage,
164
+ minMsBetweenPageRequests: minMsBetweenPageRequests,
165
+ itemKey: 'meetings',
166
+ errorMap: {
167
+ 400: 'Bad request',
168
+ 404: 'No recordings found',
169
+ },
170
+ })];
171
+ });
172
+ });
173
+ };
174
+ /**
175
+ * Get all recordings of a meeting (Light)
118
176
  * @author Aryan Pandey
119
177
  * @instance
120
178
  * @memberof api.cloudRecording
@@ -161,17 +219,13 @@ var ECatCloudRecording = /** @class */ (function (_super) {
161
219
  });
162
220
  };
163
221
  /**
164
- * List all cloud recordings of a user
222
+ * List all cloud recordings of a user (Medium)
165
223
  * @author Aryan Pandey
166
224
  * @instance
167
225
  * @memberof api.cloudRecording
168
226
  * @method listUserRecordings
169
227
  * @param opts object containing all arguments
170
228
  * @param opts.userId the user ID or email address of the user
171
- * @param [opts.pageSize=300] number of records
172
- * returned from a single API call
173
- * @param [opts.nextPageToken] token used to pageinate
174
- * through large result sets
175
229
  * @param [opts.searchTrash=false] set to true to retrieve
176
230
  * meeting recordings from the trash.
177
231
  * @param [opts.startDate=1 month before today]
@@ -182,13 +236,16 @@ var ECatCloudRecording = /** @class */ (function (_super) {
182
236
  * constructor or instance of Date object.
183
237
  * Date needs to be within past 6 months. Time data (hours and seconds)
184
238
  * is discarded
239
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
240
+ * @param [opts.minMsBetweenPageRequests] minimum time (in ms) to wait between paginated requests,
241
+ * for custom throttle control
185
242
  * @returns List of Zoom Recordings {@link https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist#responses}
186
243
  */
187
244
  ECatCloudRecording.prototype.listUserRecordings = function (opts) {
188
245
  return __awaiter(this, void 0, void 0, function () {
189
- var userId, searchTrash, nextPageToken, startDate, endDate, pageSize, defaultDate, params;
246
+ var userId, searchTrash, startDate, endDate, onNewPage, minMsBetweenPageRequests, defaultDate, params;
190
247
  return __generator(this, function (_a) {
191
- userId = opts.userId, searchTrash = opts.searchTrash, nextPageToken = opts.nextPageToken, startDate = opts.startDate, endDate = opts.endDate, pageSize = opts.pageSize;
248
+ userId = opts.userId, searchTrash = opts.searchTrash, startDate = opts.startDate, endDate = opts.endDate, onNewPage = opts.onNewPage, minMsBetweenPageRequests = opts.minMsBetweenPageRequests;
192
249
  defaultDate = new Date();
193
250
  defaultDate.setMonth(defaultDate.getMonth() - 1);
194
251
  params = {
@@ -196,34 +253,20 @@ var ECatCloudRecording = /** @class */ (function (_super) {
196
253
  trash: !!searchTrash,
197
254
  from: (0, utils_1.formatDate)(defaultDate, 'startDate'),
198
255
  };
199
- if (pageSize) {
200
- // Throw error if pageSize is over max val of 300
201
- if (pageSize > 300) {
202
- throw new ZACCLError_1.default({
203
- message: "We requested ".concat(pageSize, " recordings from Zoom but it can only give us 300 at a time"),
204
- code: ErrorCode_1.default.InvalidPageSize,
205
- });
206
- }
207
- params.page_size = pageSize;
208
- }
209
256
  if (startDate) {
210
257
  params.from = (0, utils_1.formatDate)(startDate, 'startDate');
211
258
  }
212
259
  if (endDate) {
213
260
  params.to = (0, utils_1.formatDate)(endDate, 'endDate');
214
261
  }
215
- if (nextPageToken) {
216
- params.next_page_token = nextPageToken;
217
- }
218
262
  return [2 /*return*/, this.visitEndpoint({
219
263
  path: "/users/".concat(userId, "/recordings"),
220
264
  action: 'list all cloud recordings of a user',
221
265
  method: 'GET',
222
266
  params: params,
223
- postProcessor: function (body) {
224
- // Extract the recordings from the body
225
- return Array.from(body.meetings);
226
- },
267
+ onNewPage: opts.onNewPage,
268
+ minMsBetweenPageRequests: minMsBetweenPageRequests,
269
+ itemKey: 'meetings',
227
270
  errorMap: {
228
271
  404: {
229
272
  1001: "We could not find the Zoom user ".concat(userId, " on this account"),
@@ -0,0 +1,213 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+
5
+ <meta charset="utf-8">
6
+ <title>ECatGroup.js - Documentation</title>
7
+
8
+
9
+ <script src="scripts/prettify/prettify.js"></script>
10
+ <script src="scripts/prettify/lang-css.js"></script>
11
+ <!--[if lt IE 9]>
12
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
13
+ <![endif]-->
14
+ <link type="text/css" rel="stylesheet" href="styles/prettify.css">
15
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
16
+ <script src="scripts/nav.js" defer></script>
17
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
18
+ </head>
19
+ <body>
20
+
21
+ <input type="checkbox" id="nav-trigger" class="nav-trigger" />
22
+ <label for="nav-trigger" class="navicon-button x">
23
+ <div class="navicon"></div>
24
+ </label>
25
+
26
+ <label for="nav-trigger" class="overlay"></label>
27
+
28
+ <nav style="border-right: 2px solid #ccc; padding-bottom: 25px;" >
29
+
30
+ <h2><a style="font-size: 30px;" href="index.html">ZACCL API</a></h2><h3>Endpoint Functions</h3><ul><li><a href="api.cloudRecording.html">api.cloudRecording</a><ul class='methods'><li data-type='method'><a href="api.cloudRecording.html#listAccountRecordings">listAccountRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listMeetingRecordings">listMeetingRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listUserRecordings">listUserRecordings</a></li></ul></li><li><a href="api.group.html">api.group</a><ul class='methods'><li data-type='method'><a href="api.group.html#listGroupMembers">listGroupMembers</a></li></ul></li><li><a href="api.meeting.html">api.meeting</a><ul class='methods'><li data-type='method'><a href="api.meeting.html#addAltHost">addAltHost</a></li><li data-type='method'><a href="api.meeting.html#create">create</a></li><li data-type='method'><a href="api.meeting.html#delete">delete</a></li><li data-type='method'><a href="api.meeting.html#get">get</a></li><li data-type='method'><a href="api.meeting.html#getPastMeetingDetails">getPastMeetingDetails</a></li><li data-type='method'><a href="api.meeting.html#getPollInfo">getPollInfo</a></li><li data-type='method'><a href="api.meeting.html#getTranscript">getTranscript</a></li><li data-type='method'><a href="api.meeting.html#listPastInstances">listPastInstances</a></li><li data-type='method'><a href="api.meeting.html#listPastMeetingParticipants">listPastMeetingParticipants</a></li><li data-type='method'><a href="api.meeting.html#listPastPollOccurrences">listPastPollOccurrences</a></li><li data-type='method'><a href="api.meeting.html#update">update</a></li></ul></li><li><a href="api.user.html">api.user</a><ul class='methods'><li data-type='method'><a href="api.user.html#activate">activate</a></li><li data-type='method'><a href="api.user.html#addWebinarLicense">addWebinarLicense</a></li><li data-type='method'><a href="api.user.html#get">get</a></li><li data-type='method'><a href="api.user.html#getZAKToken">getZAKToken</a></li><li data-type='method'><a href="api.user.html#promoteToLicensed">promoteToLicensed</a></li></ul></li><li><a href="api.webinar.html">api.webinar</a><ul class='methods'><li data-type='method'><a href="api.webinar.html#addPanelist">addPanelist</a></li><li data-type='method'><a href="api.webinar.html#create">create</a></li><li data-type='method'><a href="api.webinar.html#get">get</a></li><li data-type='method'><a href="api.webinar.html#listPanelists">listPanelists</a></li></ul></li></ul>
31
+ </nav>
32
+
33
+ <div id="main">
34
+
35
+
36
+
37
+
38
+
39
+
40
+ <section>
41
+ <article>
42
+ <pre class="prettyprint source linenums"><code>"use strict";
43
+ /**
44
+ * Category of endpoints for Zoom groups
45
+ * @author Gabe Abrams
46
+ * @namespace api.group
47
+ */
48
+ var __extends = (this &amp;&amp; this.__extends) || (function () {
49
+ var extendStatics = function (d, b) {
50
+ extendStatics = Object.setPrototypeOf ||
51
+ ({ __proto__: [] } instanceof Array &amp;&amp; function (d, b) { d.__proto__ = b; }) ||
52
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
53
+ return extendStatics(d, b);
54
+ };
55
+ return function (d, b) {
56
+ if (typeof b !== "function" &amp;&amp; b !== null)
57
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
58
+ extendStatics(d, b);
59
+ function __() { this.constructor = d; }
60
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
61
+ };
62
+ })();
63
+ var __awaiter = (this &amp;&amp; this.__awaiter) || function (thisArg, _arguments, P, generator) {
64
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
65
+ return new (P || (P = Promise))(function (resolve, reject) {
66
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
67
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
68
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
69
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
70
+ });
71
+ };
72
+ var __generator = (this &amp;&amp; this.__generator) || function (thisArg, body) {
73
+ var _ = { label: 0, sent: function() { if (t[0] &amp; 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
74
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" &amp;&amp; (g[Symbol.iterator] = function() { return this; }), g;
75
+ function verb(n) { return function (v) { return step([n, v]); }; }
76
+ function step(op) {
77
+ if (f) throw new TypeError("Generator is already executing.");
78
+ while (g &amp;&amp; (g = 0, op[0] &amp;&amp; (_ = 0)), _) try {
79
+ if (f = 1, y &amp;&amp; (t = op[0] &amp; 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) &amp;&amp; t.call(y), 0) : y.next) &amp;&amp; !(t = t.call(y, op[1])).done) return t;
80
+ if (y = 0, t) op = [op[0] &amp; 2, t.value];
81
+ switch (op[0]) {
82
+ case 0: case 1: t = op; break;
83
+ case 4: _.label++; return { value: op[1], done: false };
84
+ case 5: _.label++; y = op[1]; op = [0]; continue;
85
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
86
+ default:
87
+ if (!(t = _.trys, t = t.length > 0 &amp;&amp; t[t.length - 1]) &amp;&amp; (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
88
+ if (op[0] === 3 &amp;&amp; (!t || (op[1] > t[0] &amp;&amp; op[1] &lt; t[3]))) { _.label = op[1]; break; }
89
+ if (op[0] === 6 &amp;&amp; _.label &lt; t[1]) { _.label = t[1]; t = op; break; }
90
+ if (t &amp;&amp; _.label &lt; t[2]) { _.label = t[2]; _.ops.push(op); break; }
91
+ if (t[2]) _.ops.pop();
92
+ _.trys.pop(); continue;
93
+ }
94
+ op = body.call(thisArg, _);
95
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
96
+ if (op[0] &amp; 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
97
+ }
98
+ };
99
+ var __importDefault = (this &amp;&amp; this.__importDefault) || function (mod) {
100
+ return (mod &amp;&amp; mod.__esModule) ? mod : { "default": mod };
101
+ };
102
+ Object.defineProperty(exports, "__esModule", { value: true });
103
+ // Import shared interfaces
104
+ var EndpointCategory_1 = __importDefault(require("../shared/interfaces/EndpointCategory"));
105
+ var ECatGroup = /** @class */ (function (_super) {
106
+ __extends(ECatGroup, _super);
107
+ function ECatGroup() {
108
+ return _super !== null &amp;&amp; _super.apply(this, arguments) || this;
109
+ }
110
+ /**
111
+ * List groups in the account (Medium)
112
+ * @author Gabe Abrams
113
+ * @instance
114
+ * @memberof api.account
115
+ * @method listGroups
116
+ * @param [opts] object containing all arguments
117
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
118
+ * @param [opts.minMsBetweenPageRequests] minimum time (in ms) to wait between paginated requests,
119
+ * for custom throttle control
120
+ * @returns the list of groups in the account
121
+ */
122
+ ECatGroup.prototype.listGroups = function (opts) {
123
+ if (opts === void 0) { opts = {}; }
124
+ return __awaiter(this, void 0, void 0, function () {
125
+ return __generator(this, function (_a) {
126
+ return [2 /*return*/, this.visitEndpoint({
127
+ path: '/groups',
128
+ action: 'list groups in the account',
129
+ method: 'GET',
130
+ params: {
131
+ page_size: 10, // max allowed page size
132
+ // TODO: change above to 300
133
+ },
134
+ errorMap: {
135
+ 400: 'Bad request',
136
+ 404: {
137
+ 4130: 'No groups found for this account.',
138
+ },
139
+ },
140
+ itemKey: 'groups',
141
+ onNewPage: opts.onNewPage,
142
+ minMsBetweenPageRequests: opts.minMsBetweenPageRequests,
143
+ })];
144
+ });
145
+ });
146
+ };
147
+ /**
148
+ * List the members within a group (Medium)
149
+ * @author Gabe Abrams
150
+ * @instance
151
+ * @memberof api.group
152
+ * @method listGroupMembers
153
+ * @param opts object containing all arguments
154
+ * @params opts.groupId the group ID of the group of interest
155
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
156
+ * @param [opts.minMsBetweenPageRequests] minimum time (in ms) to wait between paginated requests,
157
+ * for custom throttle control
158
+ * @returns the list of members in the group
159
+ */
160
+ ECatGroup.prototype.listGroupMembers = function (opts) {
161
+ return __awaiter(this, void 0, void 0, function () {
162
+ return __generator(this, function (_a) {
163
+ return [2 /*return*/, this.visitEndpoint({
164
+ path: "/groups/".concat(opts.groupId, "/members"),
165
+ action: 'list members in a Zoom group',
166
+ method: 'GET',
167
+ params: {
168
+ page_size: 2000, // max allowed page size
169
+ },
170
+ itemKey: 'members',
171
+ errorMap: {
172
+ 400: 'Bad request',
173
+ 404: {
174
+ 4130: 'No groups found for this account.',
175
+ },
176
+ },
177
+ onNewPage: opts.onNewPage,
178
+ minMsBetweenPageRequests: opts.minMsBetweenPageRequests,
179
+ })];
180
+ });
181
+ });
182
+ };
183
+ return ECatGroup;
184
+ }(EndpointCategory_1.default));
185
+ /*------------------------------------------------------------------------*/
186
+ /* Export */
187
+ /*------------------------------------------------------------------------*/
188
+ exports.default = ECatGroup;
189
+ //# sourceMappingURL=ECatGroup.js.map</code></pre>
190
+ </article>
191
+ </section>
192
+
193
+
194
+
195
+
196
+
197
+
198
+ </div>
199
+
200
+ <br class="clear">
201
+
202
+ <footer>
203
+ We use <a href="https://github.com/jsdoc3/jsdoc">JSDoc</a> and the <a href="https://github.com/clenemt/docdash">docdash</a> theme to generate our docs.
204
+ </footer>
205
+
206
+ <script>prettyPrint();</script>
207
+ <script src="scripts/polyfill.js"></script>
208
+ <script src="scripts/linenumber.js"></script>
209
+
210
+
211
+
212
+ </body>
213
+ </html>
@@ -27,7 +27,7 @@
27
27
 
28
28
  <nav style="border-right: 2px solid #ccc; padding-bottom: 25px;" >
29
29
 
30
- <h2><a style="font-size: 30px;" href="index.html">ZACCL API</a></h2><h3>Endpoint Functions</h3><ul><li><a href="api.cloudRecording.html">api.cloudRecording</a><ul class='methods'><li data-type='method'><a href="api.cloudRecording.html#listMeetingRecordings">listMeetingRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listUserRecordings">listUserRecordings</a></li></ul></li><li><a href="api.meeting.html">api.meeting</a><ul class='methods'><li data-type='method'><a href="api.meeting.html#addAltHost">addAltHost</a></li><li data-type='method'><a href="api.meeting.html#create">create</a></li><li data-type='method'><a href="api.meeting.html#delete">delete</a></li><li data-type='method'><a href="api.meeting.html#get">get</a></li><li data-type='method'><a href="api.meeting.html#getPastMeetingDetails">getPastMeetingDetails</a></li><li data-type='method'><a href="api.meeting.html#getPollInfo">getPollInfo</a></li><li data-type='method'><a href="api.meeting.html#listPastInstances">listPastInstances</a></li><li data-type='method'><a href="api.meeting.html#listPastPollOccurrences">listPastPollOccurrences</a></li><li data-type='method'><a href="api.meeting.html#update">update</a></li></ul></li><li><a href="api.user.html">api.user</a><ul class='methods'><li data-type='method'><a href="api.user.html#activate">activate</a></li><li data-type='method'><a href="api.user.html#addWebinarLicense">addWebinarLicense</a></li><li data-type='method'><a href="api.user.html#get">get</a></li><li data-type='method'><a href="api.user.html#getZAKToken">getZAKToken</a></li><li data-type='method'><a href="api.user.html#promoteToLicensed">promoteToLicensed</a></li></ul></li><li><a href="api.webinar.html">api.webinar</a><ul class='methods'><li data-type='method'><a href="api.webinar.html#addPanelist">addPanelist</a></li><li data-type='method'><a href="api.webinar.html#create">create</a></li><li data-type='method'><a href="api.webinar.html#get">get</a></li><li data-type='method'><a href="api.webinar.html#listPanelists">listPanelists</a></li></ul></li></ul>
30
+ <h2><a style="font-size: 30px;" href="index.html">ZACCL API</a></h2><h3>Endpoint Functions</h3><ul><li><a href="api.cloudRecording.html">api.cloudRecording</a><ul class='methods'><li data-type='method'><a href="api.cloudRecording.html#listAccountRecordings">listAccountRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listMeetingRecordings">listMeetingRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listUserRecordings">listUserRecordings</a></li></ul></li><li><a href="api.group.html">api.group</a><ul class='methods'><li data-type='method'><a href="api.group.html#listGroupMembers">listGroupMembers</a></li></ul></li><li><a href="api.meeting.html">api.meeting</a><ul class='methods'><li data-type='method'><a href="api.meeting.html#addAltHost">addAltHost</a></li><li data-type='method'><a href="api.meeting.html#create">create</a></li><li data-type='method'><a href="api.meeting.html#delete">delete</a></li><li data-type='method'><a href="api.meeting.html#get">get</a></li><li data-type='method'><a href="api.meeting.html#getPastMeetingDetails">getPastMeetingDetails</a></li><li data-type='method'><a href="api.meeting.html#getPollInfo">getPollInfo</a></li><li data-type='method'><a href="api.meeting.html#getTranscript">getTranscript</a></li><li data-type='method'><a href="api.meeting.html#listPastInstances">listPastInstances</a></li><li data-type='method'><a href="api.meeting.html#listPastMeetingParticipants">listPastMeetingParticipants</a></li><li data-type='method'><a href="api.meeting.html#listPastPollOccurrences">listPastPollOccurrences</a></li><li data-type='method'><a href="api.meeting.html#update">update</a></li></ul></li><li><a href="api.user.html">api.user</a><ul class='methods'><li data-type='method'><a href="api.user.html#activate">activate</a></li><li data-type='method'><a href="api.user.html#addWebinarLicense">addWebinarLicense</a></li><li data-type='method'><a href="api.user.html#get">get</a></li><li data-type='method'><a href="api.user.html#getZAKToken">getZAKToken</a></li><li data-type='method'><a href="api.user.html#promoteToLicensed">promoteToLicensed</a></li></ul></li><li><a href="api.webinar.html">api.webinar</a><ul class='methods'><li data-type='method'><a href="api.webinar.html#addPanelist">addPanelist</a></li><li data-type='method'><a href="api.webinar.html#create">create</a></li><li data-type='method'><a href="api.webinar.html#get">get</a></li><li data-type='method'><a href="api.webinar.html#listPanelists">listPanelists</a></li></ul></li></ul>
31
31
  </nav>
32
32
 
33
33
  <div id="main">
@@ -126,7 +126,7 @@ var ECatMeeting = /** @class */ (function (_super) {
126
126
  return _super !== null &amp;&amp; _super.apply(this, arguments) || this;
127
127
  }
128
128
  /**
129
- * Get info on a meeting
129
+ * Get info on a meeting (Light)
130
130
  * @author Gabe Abrams
131
131
  * @author Aryan Pandey
132
132
  * @instance
@@ -137,7 +137,7 @@ var ECatMeeting = /** @class */ (function (_super) {
137
137
  * @param [opts.occurrenceId] ID for the meeting occurrence
138
138
  * @param [opts.showAllOccurrences=false] if truthy,
139
139
  * retrieves all past occurrences
140
- * @returns Zoom meeting object {@link https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting#responses}
140
+ * @returns Zoom meeting object
141
141
  */
142
142
  ECatMeeting.prototype.get = function (opts) {
143
143
  return __awaiter(this, void 0, void 0, function () {
@@ -171,7 +171,7 @@ var ECatMeeting = /** @class */ (function (_super) {
171
171
  });
172
172
  };
173
173
  /**
174
- * Create a new meeting
174
+ * Create a new meeting (Light)
175
175
  * @author Gabe Abrams
176
176
  * @author Aryan Pandey
177
177
  * @instance
@@ -201,7 +201,7 @@ var ECatMeeting = /** @class */ (function (_super) {
201
201
  });
202
202
  };
203
203
  /**
204
- * Update a meeting
204
+ * Update a meeting (Light)
205
205
  * @author Gabe Abrams
206
206
  * @author Aryan Pandey
207
207
  * @instance
@@ -240,7 +240,7 @@ var ECatMeeting = /** @class */ (function (_super) {
240
240
  });
241
241
  };
242
242
  /**
243
- * Delete a meeting
243
+ * Delete a meeting (Light)
244
244
  * @author Gabe Abrams
245
245
  * @author Aryan Pandey
246
246
  * @instance
@@ -290,7 +290,7 @@ var ECatMeeting = /** @class */ (function (_super) {
290
290
  });
291
291
  };
292
292
  /**
293
- * Get a list of ended meeting instances
293
+ * Get a list of ended meeting instances (Medium)
294
294
  * @author Gabe Abrams
295
295
  * @author Aryan Pandey
296
296
  * @instance
@@ -310,12 +310,13 @@ var ECatMeeting = /** @class */ (function (_super) {
310
310
  errorMap: {
311
311
  404: "We could not find a meeting with the ID ".concat(opts.meetingId),
312
312
  },
313
+ itemKey: 'meetings',
313
314
  })];
314
315
  });
315
316
  });
316
317
  };
317
318
  /**
318
- * Get details of a past meeting instance
319
+ * Get details of a past meeting instance (Light)
319
320
  * @author Yuen Ler Chow
320
321
  * @instance
321
322
  * @memberof api.meeting
@@ -346,7 +347,7 @@ var ECatMeeting = /** @class */ (function (_super) {
346
347
  });
347
348
  };
348
349
  /**
349
- * List past poll occurrences
350
+ * List past poll occurrences (Medium)
350
351
  * @author Yuen Ler Chow
351
352
  * @instance
352
353
  * @memberof api.meeting
@@ -446,7 +447,7 @@ var ECatMeeting = /** @class */ (function (_super) {
446
447
  });
447
448
  };
448
449
  /**
449
- * Get poll info
450
+ * Get poll info (Light)
450
451
  * @author Yuen Ler Chow
451
452
  * @instance
452
453
  * @memberof api.meeting
@@ -553,7 +554,7 @@ var ECatMeeting = /** @class */ (function (_super) {
553
554
  * user is added as the only alt-host. This is because Zoom doesn't give us
554
555
  * enough information to determine which user is deactivated, and thus,
555
556
  * the only way to resolve the issue is to remove all previously existing
556
- * alt-hosts.
557
+ * alt-hosts. (Light)
557
558
  * @author Gabe Abrams
558
559
  * @author Aryan Pandey
559
560
  * @instance
@@ -625,6 +626,73 @@ var ECatMeeting = /** @class */ (function (_super) {
625
626
  });
626
627
  });
627
628
  };
629
+ /**
630
+ * Get meeting transcript (Medium)
631
+ * @author Gabe Abrams
632
+ * @instance
633
+ * @memberof api.meeting
634
+ * @method getTranscript
635
+ * @param opts object containing all arguments
636
+ * @param opts.meetingId the Zoom ID of the meeting (or UUID of a past meeting instance)
637
+ * @returns meeting transcript
638
+ */
639
+ ECatMeeting.prototype.getTranscript = function (opts) {
640
+ return __awaiter(this, void 0, void 0, function () {
641
+ return __generator(this, function (_a) {
642
+ return [2 /*return*/, this.visitEndpoint({
643
+ path: "/meetings/".concat(opts.meetingId, "/transcript"),
644
+ action: 'get the meeting transcript',
645
+ method: 'GET',
646
+ errorMap: {
647
+ 400: 'Invalid meeting ID',
648
+ 403: 'You do not have permission to access the transcript for this meeting',
649
+ 404: {
650
+ 3322: 'The meeting transcript does not exist',
651
+ },
652
+ },
653
+ })];
654
+ });
655
+ });
656
+ };
657
+ /**
658
+ * Get list of participants in a past meeting (Medium)
659
+ * @author Gabe Abrams
660
+ * @instance
661
+ * @memberof api.meeting
662
+ * @method listPastMeetingParticipants
663
+ * @param opts object containing all arguments
664
+ * @param opts.meetingId the Zoom UUID of the past meeting instance
665
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
666
+ * @param [opts.minMsBetweenPageRequests] minimum time (in ms) to wait between paginated requests,
667
+ * for custom throttle control
668
+ * @returns list of past meeting participants
669
+ */
670
+ ECatMeeting.prototype.listPastMeetingParticipants = function (opts) {
671
+ return __awaiter(this, void 0, void 0, function () {
672
+ return __generator(this, function (_a) {
673
+ return [2 /*return*/, this.visitEndpoint({
674
+ path: "/past_meetings/".concat(opts.meetingId, "/participants"),
675
+ action: 'get the list of participants in a past meeting',
676
+ method: 'GET',
677
+ params: {
678
+ page_size: 300, // max allowed page size
679
+ },
680
+ itemKey: 'participants',
681
+ onNewPage: opts.onNewPage,
682
+ minMsBetweenPageRequests: opts.minMsBetweenPageRequests,
683
+ errorMap: {
684
+ 400: {
685
+ 200: 'You need a paid account to access the participant list of a past meeting.',
686
+ 12702: 'You are not allowed to access information about meetings that occurred more than 1 year ago.',
687
+ },
688
+ 404: {
689
+ 3001: 'The meeting ID is invalid or the meeting has not ended.',
690
+ },
691
+ },
692
+ })];
693
+ });
694
+ });
695
+ };
628
696
  return ECatMeeting;
629
697
  }(EndpointCategory_1.default));
630
698
  /*------------------------------------------------------------------------*/
@@ -27,7 +27,7 @@
27
27
 
28
28
  <nav style="border-right: 2px solid #ccc; padding-bottom: 25px;" >
29
29
 
30
- <h2><a style="font-size: 30px;" href="index.html">ZACCL API</a></h2><h3>Endpoint Functions</h3><ul><li><a href="api.cloudRecording.html">api.cloudRecording</a><ul class='methods'><li data-type='method'><a href="api.cloudRecording.html#listMeetingRecordings">listMeetingRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listUserRecordings">listUserRecordings</a></li></ul></li><li><a href="api.meeting.html">api.meeting</a><ul class='methods'><li data-type='method'><a href="api.meeting.html#addAltHost">addAltHost</a></li><li data-type='method'><a href="api.meeting.html#create">create</a></li><li data-type='method'><a href="api.meeting.html#delete">delete</a></li><li data-type='method'><a href="api.meeting.html#get">get</a></li><li data-type='method'><a href="api.meeting.html#getPastMeetingDetails">getPastMeetingDetails</a></li><li data-type='method'><a href="api.meeting.html#getPollInfo">getPollInfo</a></li><li data-type='method'><a href="api.meeting.html#listPastInstances">listPastInstances</a></li><li data-type='method'><a href="api.meeting.html#listPastPollOccurrences">listPastPollOccurrences</a></li><li data-type='method'><a href="api.meeting.html#update">update</a></li></ul></li><li><a href="api.user.html">api.user</a><ul class='methods'><li data-type='method'><a href="api.user.html#activate">activate</a></li><li data-type='method'><a href="api.user.html#addWebinarLicense">addWebinarLicense</a></li><li data-type='method'><a href="api.user.html#get">get</a></li><li data-type='method'><a href="api.user.html#getZAKToken">getZAKToken</a></li><li data-type='method'><a href="api.user.html#promoteToLicensed">promoteToLicensed</a></li></ul></li><li><a href="api.webinar.html">api.webinar</a><ul class='methods'><li data-type='method'><a href="api.webinar.html#addPanelist">addPanelist</a></li><li data-type='method'><a href="api.webinar.html#create">create</a></li><li data-type='method'><a href="api.webinar.html#get">get</a></li><li data-type='method'><a href="api.webinar.html#listPanelists">listPanelists</a></li></ul></li></ul>
30
+ <h2><a style="font-size: 30px;" href="index.html">ZACCL API</a></h2><h3>Endpoint Functions</h3><ul><li><a href="api.cloudRecording.html">api.cloudRecording</a><ul class='methods'><li data-type='method'><a href="api.cloudRecording.html#listAccountRecordings">listAccountRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listMeetingRecordings">listMeetingRecordings</a></li><li data-type='method'><a href="api.cloudRecording.html#listUserRecordings">listUserRecordings</a></li></ul></li><li><a href="api.group.html">api.group</a><ul class='methods'><li data-type='method'><a href="api.group.html#listGroupMembers">listGroupMembers</a></li></ul></li><li><a href="api.meeting.html">api.meeting</a><ul class='methods'><li data-type='method'><a href="api.meeting.html#addAltHost">addAltHost</a></li><li data-type='method'><a href="api.meeting.html#create">create</a></li><li data-type='method'><a href="api.meeting.html#delete">delete</a></li><li data-type='method'><a href="api.meeting.html#get">get</a></li><li data-type='method'><a href="api.meeting.html#getPastMeetingDetails">getPastMeetingDetails</a></li><li data-type='method'><a href="api.meeting.html#getPollInfo">getPollInfo</a></li><li data-type='method'><a href="api.meeting.html#getTranscript">getTranscript</a></li><li data-type='method'><a href="api.meeting.html#listPastInstances">listPastInstances</a></li><li data-type='method'><a href="api.meeting.html#listPastMeetingParticipants">listPastMeetingParticipants</a></li><li data-type='method'><a href="api.meeting.html#listPastPollOccurrences">listPastPollOccurrences</a></li><li data-type='method'><a href="api.meeting.html#update">update</a></li></ul></li><li><a href="api.user.html">api.user</a><ul class='methods'><li data-type='method'><a href="api.user.html#activate">activate</a></li><li data-type='method'><a href="api.user.html#addWebinarLicense">addWebinarLicense</a></li><li data-type='method'><a href="api.user.html#get">get</a></li><li data-type='method'><a href="api.user.html#getZAKToken">getZAKToken</a></li><li data-type='method'><a href="api.user.html#promoteToLicensed">promoteToLicensed</a></li></ul></li><li><a href="api.webinar.html">api.webinar</a><ul class='methods'><li data-type='method'><a href="api.webinar.html#addPanelist">addPanelist</a></li><li data-type='method'><a href="api.webinar.html#create">create</a></li><li data-type='method'><a href="api.webinar.html#get">get</a></li><li data-type='method'><a href="api.webinar.html#listPanelists">listPanelists</a></li></ul></li></ul>
31
31
  </nav>
32
32
 
33
33
  <div id="main">
@@ -108,7 +108,7 @@ var ECatUser = /** @class */ (function (_super) {
108
108
  return _super !== null &amp;&amp; _super.apply(this, arguments) || this;
109
109
  }
110
110
  /**
111
- * Retrieve a user's ZAK token
111
+ * Retrieve a user's ZAK token (Light)
112
112
  * @author Aryan Pandey
113
113
  * @instance
114
114
  * @memberof api.user
@@ -127,22 +127,19 @@ var ECatUser = /** @class */ (function (_super) {
127
127
  params: {
128
128
  type: 'zak',
129
129
  },
130
+ itemKey: 'token',
130
131
  errorMap: {
131
132
  404: {
132
133
  1001: "We could not retrieve a token for Zoom user ".concat(opts.userId, " since this user does not exist"),
133
134
  },
134
135
  },
135
- postProcessor: function (body) {
136
- // extract zak token from the response object
137
- return body.token;
138
- },
139
136
  })];
140
137
  });
141
138
  });
142
139
  };
143
140
  /**
144
141
  * (Re)activate a user and promote them to a "licensed" user (unless
145
- * dontPromoteToLicensed is true)
142
+ * dontPromoteToLicensed is true) (Light)
146
143
  * @author Gabe Abrams
147
144
  * @instance
148
145
  * @memberof api.user
@@ -190,7 +187,7 @@ var ECatUser = /** @class */ (function (_super) {
190
187
  });
191
188
  };
192
189
  /**
193
- * Add a webinar license to the user of interest
190
+ * Add a webinar license to the user of interest (Medium)
194
191
  * @author Gabe Abrams
195
192
  * @instance
196
193
  * @memberof api.user
@@ -227,7 +224,7 @@ var ECatUser = /** @class */ (function (_super) {
227
224
  });
228
225
  };
229
226
  /**
230
- * Get a user
227
+ * Get a user (Light)
231
228
  * @author Gabe Abrams
232
229
  * @instance
233
230
  * @memberof api.user
@@ -253,7 +250,7 @@ var ECatUser = /** @class */ (function (_super) {
253
250
  });
254
251
  };
255
252
  /**
256
- * Promote a user to "licensed" type
253
+ * Promote a user to "licensed" type (Light)
257
254
  * @author Gabe Abrams
258
255
  * @instance
259
256
  * @memberof api.user