zaccl 3.0.17 → 4.0.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 (70) hide show
  1. package/docs/ECatCloudRecording.js.html +74 -27
  2. package/docs/ECatGroup.js.html +207 -0
  3. package/docs/ECatMeeting.js.html +76 -11
  4. package/docs/ECatUser.js.html +7 -10
  5. package/docs/ECatWebinar.js.html +6 -5
  6. package/docs/api.cloudRecording.html +371 -48
  7. package/docs/api.group.html +367 -0
  8. package/docs/api.meeting.html +437 -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 +33 -9
  13. package/lib/endpoints/ECatCloudRecording.js +73 -26
  14. package/lib/endpoints/ECatCloudRecording.js.map +1 -1
  15. package/lib/endpoints/ECatGroup.d.ts +39 -0
  16. package/lib/endpoints/ECatGroup.js +142 -0
  17. package/lib/endpoints/ECatGroup.js.map +1 -0
  18. package/lib/endpoints/ECatMeeting.d.ts +40 -10
  19. package/lib/endpoints/ECatMeeting.js +75 -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 +60 -17
  31. package/lib/shared/helpers/genVisitEndpoint.js.map +1 -1
  32. package/lib/shared/types/VisitEndpointFunc.d.ts +2 -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/ZoomMeetingRecordings.d.ts +1 -0
  42. package/lib/types/ZoomMeetingTranscript.d.ts +17 -0
  43. package/lib/types/ZoomMeetingTranscript.js +3 -0
  44. package/lib/types/ZoomMeetingTranscript.js.map +1 -0
  45. package/lib/types/ZoomPastMeetingDetails.d.ts +22 -0
  46. package/lib/types/ZoomPastMeetingDetails.js +3 -0
  47. package/lib/types/ZoomPastMeetingDetails.js.map +1 -0
  48. package/lib/types/ZoomPastMeetingParticipant.d.ts +18 -0
  49. package/lib/types/ZoomPastMeetingParticipant.js +3 -0
  50. package/lib/types/ZoomPastMeetingParticipant.js.map +1 -0
  51. package/lib/types/ZoomRecordingInAccount.d.ts +22 -0
  52. package/lib/types/ZoomRecordingInAccount.js +3 -0
  53. package/lib/types/ZoomRecordingInAccount.js.map +1 -0
  54. package/package.json +2 -2
  55. package/src/endpoints/ECatCloudRecording.ts +86 -30
  56. package/src/endpoints/ECatGroup.ts +89 -0
  57. package/src/endpoints/ECatMeeting.ts +81 -10
  58. package/src/endpoints/ECatUser.ts +6 -9
  59. package/src/endpoints/ECatWebinar.ts +5 -4
  60. package/src/index.ts +53 -0
  61. package/src/shared/helpers/genVisitEndpoint.ts +123 -79
  62. package/src/shared/types/VisitEndpointFunc.ts +4 -2
  63. package/src/types/ZoomAPI.ts +2 -0
  64. package/src/types/ZoomGroup.ts +14 -0
  65. package/src/types/ZoomGroupMember.ts +20 -0
  66. package/src/types/ZoomMeetingRecordings.ts +2 -0
  67. package/src/types/ZoomMeetingTranscript.ts +28 -0
  68. package/src/types/ZoomPastMeetingDetails.ts +38 -0
  69. package/src/types/ZoomPastMeetingParticipant.ts +30 -0
  70. 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,17 +114,75 @@ 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
+ * @returns the list of recordings in the account
131
+ */
132
+ ECatCloudRecording.prototype.listAccountRecordings = function (opts) {
133
+ var _a, _b;
134
+ return __awaiter(this, void 0, void 0, function () {
135
+ var fromYear, fromMonth, fromMonthPadded, fromDay, fromDayPadded, fromDateString, toYear, toMonth, toMonthPadded, toDay, toDayPadded, toDateString;
136
+ return __generator(this, function (_c) {
137
+ fromYear = opts.fromYear, fromMonth = opts.fromMonth;
138
+ fromMonthPadded = fromMonth &lt; 10 ? "0".concat(fromMonth) : fromMonth;
139
+ fromDay = (_a = opts.fromDay) !== null &amp;&amp; _a !== void 0 ? _a : 1;
140
+ fromDayPadded = fromDay &lt; 10 ? "0".concat(fromDay) : fromDay;
141
+ fromDateString = "".concat(fromYear, "-").concat(fromMonthPadded, "-").concat(fromDayPadded);
142
+ toYear = fromYear;
143
+ toMonth = opts.fromMonth + 1;
144
+ if (toMonth > 12) {
145
+ toMonth = 1;
146
+ toYear += 1;
147
+ }
148
+ toMonthPadded = toMonth &lt; 10 ? "0".concat(toMonth) : toMonth;
149
+ toDay = fromDay;
150
+ toDayPadded = toDay &lt; 10 ? "0".concat(toDay) : toDay;
151
+ toDateString = "".concat(toYear, "-").concat(toMonthPadded, "-").concat(toDayPadded);
152
+ return [2 /*return*/, this.visitEndpoint({
153
+ path: "/accounts/".concat((_b = opts.accountId) !== null &amp;&amp; _b !== void 0 ? _b : 'me', "/recordings"),
154
+ action: 'list recordings in the account',
155
+ method: 'GET',
156
+ params: {
157
+ page_size: 300,
158
+ from: fromDateString,
159
+ to: toDateString,
160
+ },
161
+ onNewPage: opts.onNewPage,
162
+ itemKey: 'meetings',
163
+ errorMap: {
164
+ 400: 'Bad request',
165
+ 404: 'No recordings found',
166
+ },
167
+ })];
168
+ });
169
+ });
170
+ };
171
+ /**
172
+ * Get all recordings of a meeting (Light)
118
173
  * @author Aryan Pandey
119
174
  * @instance
120
175
  * @memberof api.cloudRecording
121
176
  * @method listMeetingRecordings
122
177
  * @param opts object containing all arguments
123
- * @param options.meetingId the Zoom meeting ID or UUID
178
+ * @param opts.meetingId the Zoom meeting ID or UUID
179
+ * @param opts.includeDownloadAccessToken if true, the response will include a download_access_token
180
+ * that can be used to download the recording files
124
181
  * @returns list of Zoom meeting recording objects {@link https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingget#responses}
125
182
  */
126
183
  ECatCloudRecording.prototype.listMeetingRecordings = function (opts) {
127
184
  return __awaiter(this, void 0, void 0, function () {
185
+ var params;
128
186
  return __generator(this, function (_a) {
129
187
  // Check if required param is present
130
188
  if (!opts.meetingId) {
@@ -133,11 +191,17 @@ var ECatCloudRecording = /** @class */ (function (_super) {
133
191
  code: ErrorCode_1.default.InvalidMeetingId,
134
192
  });
135
193
  }
194
+ params = {};
195
+ if (opts.includeDownloadAccessToken) {
196
+ params.include_fields = 'download_access_token';
197
+ params.ttl = 604800; // Max TTL
198
+ }
136
199
  return [2 /*return*/, this.visitEndpoint({
137
200
  // Call function on meetingId to handle double encoding if necessary
138
201
  path: "/meetings/".concat((0, utils_1.doubleEncode)(String(opts.meetingId)), "/recordings"),
139
202
  method: 'GET',
140
203
  action: 'get all recordings of a meeting',
204
+ params: params,
141
205
  errorMap: {
142
206
  400: {
143
207
  1010: 'We could not find the user on this account',
@@ -152,17 +216,13 @@ var ECatCloudRecording = /** @class */ (function (_super) {
152
216
  });
153
217
  };
154
218
  /**
155
- * List all cloud recordings of a user
219
+ * List all cloud recordings of a user (Medium)
156
220
  * @author Aryan Pandey
157
221
  * @instance
158
222
  * @memberof api.cloudRecording
159
223
  * @method listUserRecordings
160
224
  * @param opts object containing all arguments
161
225
  * @param opts.userId the user ID or email address of the user
162
- * @param [opts.pageSize=300] number of records
163
- * returned from a single API call
164
- * @param [opts.nextPageToken] token used to pageinate
165
- * through large result sets
166
226
  * @param [opts.searchTrash=false] set to true to retrieve
167
227
  * meeting recordings from the trash.
168
228
  * @param [opts.startDate=1 month before today]
@@ -173,13 +233,15 @@ var ECatCloudRecording = /** @class */ (function (_super) {
173
233
  * constructor or instance of Date object.
174
234
  * Date needs to be within past 6 months. Time data (hours and seconds)
175
235
  * is discarded
236
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
237
+
176
238
  * @returns List of Zoom Recordings {@link https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist#responses}
177
239
  */
178
240
  ECatCloudRecording.prototype.listUserRecordings = function (opts) {
179
241
  return __awaiter(this, void 0, void 0, function () {
180
- var userId, searchTrash, nextPageToken, startDate, endDate, pageSize, defaultDate, params;
242
+ var userId, searchTrash, startDate, endDate, onNewPage, defaultDate, params;
181
243
  return __generator(this, function (_a) {
182
- userId = opts.userId, searchTrash = opts.searchTrash, nextPageToken = opts.nextPageToken, startDate = opts.startDate, endDate = opts.endDate, pageSize = opts.pageSize;
244
+ userId = opts.userId, searchTrash = opts.searchTrash, startDate = opts.startDate, endDate = opts.endDate, onNewPage = opts.onNewPage;
183
245
  defaultDate = new Date();
184
246
  defaultDate.setMonth(defaultDate.getMonth() - 1);
185
247
  params = {
@@ -187,34 +249,19 @@ var ECatCloudRecording = /** @class */ (function (_super) {
187
249
  trash: !!searchTrash,
188
250
  from: (0, utils_1.formatDate)(defaultDate, 'startDate'),
189
251
  };
190
- if (pageSize) {
191
- // Throw error if pageSize is over max val of 300
192
- if (pageSize > 300) {
193
- throw new ZACCLError_1.default({
194
- message: "We requested ".concat(pageSize, " recordings from Zoom but it can only give us 300 at a time"),
195
- code: ErrorCode_1.default.InvalidPageSize,
196
- });
197
- }
198
- params.page_size = pageSize;
199
- }
200
252
  if (startDate) {
201
253
  params.from = (0, utils_1.formatDate)(startDate, 'startDate');
202
254
  }
203
255
  if (endDate) {
204
256
  params.to = (0, utils_1.formatDate)(endDate, 'endDate');
205
257
  }
206
- if (nextPageToken) {
207
- params.next_page_token = nextPageToken;
208
- }
209
258
  return [2 /*return*/, this.visitEndpoint({
210
259
  path: "/users/".concat(userId, "/recordings"),
211
260
  action: 'list all cloud recordings of a user',
212
261
  method: 'GET',
213
262
  params: params,
214
- postProcessor: function (body) {
215
- // Extract the recordings from the body
216
- return Array.from(body.meetings);
217
- },
263
+ onNewPage: opts.onNewPage,
264
+ itemKey: 'meetings',
218
265
  errorMap: {
219
266
  404: {
220
267
  1001: "We could not find the Zoom user ".concat(userId, " on this account"),
@@ -0,0 +1,207 @@
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
+ * @returns the list of groups in the account
119
+ */
120
+ ECatGroup.prototype.listGroups = function (opts) {
121
+ if (opts === void 0) { opts = {}; }
122
+ return __awaiter(this, void 0, void 0, function () {
123
+ return __generator(this, function (_a) {
124
+ return [2 /*return*/, this.visitEndpoint({
125
+ path: '/groups',
126
+ action: 'list groups in the account',
127
+ method: 'GET',
128
+ params: {
129
+ page_size: 10, // max allowed page size
130
+ // TODO: change above to 300
131
+ },
132
+ errorMap: {
133
+ 400: 'Bad request',
134
+ 404: {
135
+ 4130: 'No groups found for this account.',
136
+ },
137
+ },
138
+ itemKey: 'groups',
139
+ onNewPage: opts.onNewPage,
140
+ })];
141
+ });
142
+ });
143
+ };
144
+ /**
145
+ * List the members within a group (Medium)
146
+ * @author Gabe Abrams
147
+ * @instance
148
+ * @memberof api.group
149
+ * @method listGroupMembers
150
+ * @param opts object containing all arguments
151
+ * @params opts.groupId the group ID of the group of interest
152
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
153
+ * @returns the list of members in the group
154
+ */
155
+ ECatGroup.prototype.listGroupMembers = function (opts) {
156
+ return __awaiter(this, void 0, void 0, function () {
157
+ return __generator(this, function (_a) {
158
+ return [2 /*return*/, this.visitEndpoint({
159
+ path: "/groups/".concat(opts.groupId, "/members"),
160
+ action: 'list members in a Zoom group',
161
+ method: 'GET',
162
+ params: {
163
+ page_size: 2000, // max allowed page size
164
+ },
165
+ itemKey: 'members',
166
+ errorMap: {
167
+ 400: 'Bad request',
168
+ 404: {
169
+ 4130: 'No groups found for this account.',
170
+ },
171
+ },
172
+ onNewPage: opts.onNewPage,
173
+ })];
174
+ });
175
+ });
176
+ };
177
+ return ECatGroup;
178
+ }(EndpointCategory_1.default));
179
+ /*------------------------------------------------------------------------*/
180
+ /* Export */
181
+ /*------------------------------------------------------------------------*/
182
+ exports.default = ECatGroup;
183
+ //# sourceMappingURL=ECatGroup.js.map</code></pre>
184
+ </article>
185
+ </section>
186
+
187
+
188
+
189
+
190
+
191
+
192
+ </div>
193
+
194
+ <br class="clear">
195
+
196
+ <footer>
197
+ 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.
198
+ </footer>
199
+
200
+ <script>prettyPrint();</script>
201
+ <script src="scripts/polyfill.js"></script>
202
+ <script src="scripts/linenumber.js"></script>
203
+
204
+
205
+
206
+ </body>
207
+ </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,70 @@ 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
+ * @returns list of past meeting participants
667
+ */
668
+ ECatMeeting.prototype.listPastMeetingParticipants = function (opts) {
669
+ return __awaiter(this, void 0, void 0, function () {
670
+ return __generator(this, function (_a) {
671
+ return [2 /*return*/, this.visitEndpoint({
672
+ path: "/past_meetings/".concat(opts.meetingId, "/participants"),
673
+ action: 'get the list of participants in a past meeting',
674
+ method: 'GET',
675
+ params: {
676
+ page_size: 300, // max allowed page size
677
+ },
678
+ itemKey: 'participants',
679
+ onNewPage: opts.onNewPage,
680
+ errorMap: {
681
+ 400: {
682
+ 200: 'You need a paid account to access the participant list of a past meeting.',
683
+ 12702: 'You are not allowed to access information about meetings that occurred more than 1 year ago.',
684
+ },
685
+ 404: {
686
+ 3001: 'The meeting ID is invalid or the meeting has not ended.',
687
+ },
688
+ },
689
+ })];
690
+ });
691
+ });
692
+ };
628
693
  return ECatMeeting;
629
694
  }(EndpointCategory_1.default));
630
695
  /*------------------------------------------------------------------------*/