zaccl 3.0.18 → 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 (68) hide show
  1. package/docs/ECatCloudRecording.js.html +64 -26
  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 +328 -50
  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 +29 -8
  13. package/lib/endpoints/ECatCloudRecording.js +63 -25
  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/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 +74 -29
  55. package/src/endpoints/ECatGroup.ts +89 -0
  56. package/src/endpoints/ECatMeeting.ts +81 -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 +123 -79
  61. package/src/shared/types/VisitEndpointFunc.ts +4 -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
@@ -1 +1 @@
1
- {"version":3,"file":"genVisitEndpoint.js","sourceRoot":"","sources":["../../../src/shared/helpers/genVisitEndpoint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAAwB;AACxB,sEAAgD;AAKhD,iEAA2C;AAC3C,2EAAqD;AAErD,wBAAwB;AACxB,qEAA+C;AAE/C;;;;;GAKG;AACH,IAAM,gBAAgB,GAAG,UAAC,aAA4B;IACpD;;;;;;;;;;;;OAYG;IACH,OAAO,UACL,IAcC;;;;;;oBAGC,IAAI,GAKF,IAAI,KALF,EACJ,MAAM,GAIJ,IAAI,OAJA,EACN,MAAM,GAGJ,IAAI,OAHA,EACN,QAAQ,GAEN,IAAI,SAFE,EACR,aAAa,GACX,IAAI,cADO,CACN;oBACH,MAAM,GAAG,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,KAAK,CAAC,CAAC;oBAIJ,qBAAM,IAAA,yBAAe,EAAC;4BACtD,IAAI,MAAA;4BACJ,MAAM,QAAA;4BACN,MAAM,QAAA;4BACN,aAAa,eAAA;yBACd,CAAC,EAAA;;oBALI,KAA4B,SAKhC,EALM,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,IAAI,UAAA;oBAO7B,wCAAwC;oBAExC,IAAI,MAAM,KAAK,GAAG,EAAE;wBAEX,mBAAmB,GAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAC,MAAM;4BAC/D,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,kBAAkB,CAAC,CAAC;wBACvD,CAAC,CAAC,GAFwB,CAEvB;wBAGG,aAAa,GAAG,CACpB,OAAO,CAAC,mBAAmB,CAAC;+BACzB,OAAO,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAC9C,CAAC;wBAEF,IAAI,aAAa,KAAK,wBAAc,CAAC,gBAAgB,EAAE;4BACrD,cAAc;4BACd,MAAM,IAAI,oBAAU,CAAC;gCACnB,OAAO,EAAE,oEAAoE;gCAC7E,IAAI,EAAE,mBAAS,CAAC,eAAe;6BAChC,CAAC,CAAC;yBACJ;6BAAM,IAAI,aAAa,KAAK,wBAAc,CAAC,eAAe,EAAE;4BAC3D,aAAa;4BACb,MAAM,IAAI,oBAAU,CAAC;gCACnB,OAAO,EAAE,qEAAqE;gCAC9E,IAAI,EAAE,mBAAS,CAAC,cAAc;6BAC/B,CAAC,CAAC;yBACJ;6BAAM;4BACL,qBAAqB;4BACrB,MAAM,IAAI,oBAAU,CAAC;gCACnB,OAAO,EAAE,+DAA+D;gCACxE,IAAI,EAAE,mBAAS,CAAC,iBAAiB;6BAClC,CAAC,CAAC;yBACJ;qBACF;oBAED,wCAAwC;oBAExC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE;wBAI7B,gBAAgB,GAAG,iCAAiC,CAAC;wBACzD,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;4BACpB,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;gCACxC,0BAA0B;gCAC1B,gBAAgB,GAAI,QAAQ,CAAC,MAAM,CAAY,CAAC;6BACjD;iCAAM,IAAI,IAAI,CAAC,IAAI,EAAE;gCACpB,iCAAiC;gCACjC,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;oCACnD,6BAA6B;oCAC7B,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iCAChD;qCAAM,IAAI,IAAI,CAAC,OAAO,EAAE;oCACvB,oDAAoD;oCACpD,mBAAmB;oCACnB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;wCACpC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;qCACjC;iCACF;6BACF;yBACF;6BAAM,IAAI,IAAI,CAAC,OAAO,EAAE;4BACvB,mDAAmD;4BACnD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;gCACpC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;6BACjC;yBACF;wBAEK,YAAY,GAAG,sBAAe,MAAM,yCAA+B,gBAAgB,CAAE,CAAC;wBACtF,SAAS,GAAG,cAAO,MAAM,SAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAI,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;wBAErE,MAAM,IAAI,oBAAU,CAAC;4BACnB,OAAO,EAAE,YAAY;4BACrB,IAAI,EAAE,SAAS;yBAChB,CAAC,CAAC;qBACJ;oBAED,wCAAwC;oBAExC,IAAI,aAAa,EAAE;wBACjB,sBAAO,aAAa,CAAC,IAAI,CAAC,EAAC;qBAC5B;oBAED,sBAAO,IAAI,EAAC;;;SACb,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"genVisitEndpoint.js","sourceRoot":"","sources":["../../../src/shared/helpers/genVisitEndpoint.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ type VisitEndpointFunc = ((opts: {
14
14
  params?: {
15
15
  [k: string]: any;
16
16
  };
17
- postProcessor?: (response: any) => any;
17
+ itemKey?: string;
18
+ onNewPage?: (items: any[]) => void;
18
19
  }) => Promise<any>);
19
20
  export default VisitEndpointFunc;
@@ -1,4 +1,5 @@
1
1
  import ECatCloudRecording from '../endpoints/ECatCloudRecording';
2
+ import ECatGroup from '../endpoints/ECatGroup';
2
3
  import ECatMeeting from '../endpoints/ECatMeeting';
3
4
  import ECatUser from '../endpoints/ECatUser';
4
5
  import ECatWebinar from '../endpoints/ECatWebinar';
@@ -11,5 +12,6 @@ interface ZoomAPI {
11
12
  meeting: ECatMeeting;
12
13
  user: ECatUser;
13
14
  webinar: ECatWebinar;
15
+ group: ECatGroup;
14
16
  }
15
17
  export default ZoomAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"ZoomAPI.js","sourceRoot":"","sources":["../../src/types/ZoomAPI.ts"],"names":[],"mappings":";;AAcC,CAAC"}
1
+ {"version":3,"file":"ZoomAPI.js","sourceRoot":"","sources":["../../src/types/ZoomAPI.ts"],"names":[],"mappings":";;AAgBC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Zoom user group
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomGroup = {
6
+ id: string;
7
+ name: string;
8
+ total_members: number;
9
+ };
10
+ export default ZoomGroup;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomGroup.js","sourceRoot":"","sources":["../../src/types/ZoomGroup.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A single group member within a Zoom group
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomGroupMember = {
6
+ email: string;
7
+ first_name: string;
8
+ id: string;
9
+ last_name: string;
10
+ type: (1 | 2);
11
+ };
12
+ export default ZoomGroupMember;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomGroupMember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomGroupMember.js","sourceRoot":"","sources":["../../src/types/ZoomGroupMember.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Transcript for a specific zoom meeting instance
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomMeetingTranscript = {
6
+ meeting_id: string;
7
+ account_id: string;
8
+ meeting_topic: string;
9
+ host_id: string;
10
+ transcript_created_time: string;
11
+ can_download: boolean;
12
+ auto_delete: boolean;
13
+ auto_delete_date: string;
14
+ download_url: string | null;
15
+ download_restriction_reason: 'DELETED_OR_TRASHED' | 'UNSUPPORTED' | 'NO_TRANSCRIPT_DATA' | 'NOT_READY' | null;
16
+ };
17
+ export default ZoomMeetingTranscript;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomMeetingTranscript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomMeetingTranscript.js","sourceRoot":"","sources":["../../src/types/ZoomMeetingTranscript.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Details about a past meeting
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomPastMeetingDetails = {
6
+ id: number;
7
+ uuid: string;
8
+ duration: number;
9
+ start_time: string;
10
+ end_time: string;
11
+ host_id: string;
12
+ dept: string;
13
+ participants_count: number;
14
+ source: string;
15
+ topic: string;
16
+ total_minutes: number;
17
+ type: 0 | 1 | 2 | 3 | 4 | 7 | 8;
18
+ user_email: string;
19
+ user_name: string;
20
+ has_meeting_summary: boolean;
21
+ };
22
+ export default ZoomPastMeetingDetails;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomPastMeetingDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomPastMeetingDetails.js","sourceRoot":"","sources":["../../src/types/ZoomPastMeetingDetails.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Represents a participant in a Zoom past meeting.
3
+ * @author Gabe Abrams
4
+ */
5
+ type ZoomPastMeetingParticipant = {
6
+ id?: string;
7
+ name?: string;
8
+ user_id?: string;
9
+ registrant_id?: string;
10
+ user_email?: string;
11
+ join_time?: string;
12
+ leave_time?: string;
13
+ duration?: number;
14
+ failover?: boolean;
15
+ status?: 'in_meeting' | 'in_waiting_room';
16
+ internal_user?: boolean;
17
+ };
18
+ export default ZoomPastMeetingParticipant;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomPastMeetingParticipant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomPastMeetingParticipant.js","sourceRoot":"","sources":["../../src/types/ZoomPastMeetingParticipant.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import ZoomRecordingFile from './ZoomRecordingFile';
2
+ /**
3
+ * A single recording in an account
4
+ * @author Gabe Abrams
5
+ */
6
+ type ZoomRecordingInAccount = {
7
+ duration: number;
8
+ host_id: string;
9
+ id: number;
10
+ recording_count: number;
11
+ recording_files: ZoomRecordingFile[];
12
+ start_time: string;
13
+ topic: string;
14
+ total_size: number;
15
+ type: number;
16
+ uuid: string;
17
+ rc_zone?: string;
18
+ instance_id?: string;
19
+ service_name?: string;
20
+ external_storage_addr?: string;
21
+ };
22
+ export default ZoomRecordingInAccount;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ZoomRecordingInAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomRecordingInAccount.js","sourceRoot":"","sources":["../../src/types/ZoomRecordingInAccount.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "zaccl",
3
- "version": "3.0.18",
3
+ "version": "4.0.0",
4
4
  "description": "The Zoom App Complete Connection Library, a project that handles everything required to build a zoom-integrated app.",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc --project ./tsconfig.json && rm -rf ./docBuilder/template;cp -r ./node_modules/docdash ./docBuilder/template; node ./docBuilder/updateBuilder.js;rm -rf ./docs;./node_modules/.bin/jsdoc -c ./docBuilder/jsdocConfig.json",
9
- "sandbox": "npm run build && npx ts-node sandbox.ts"
9
+ "dev:sandbox": "npm run build && npx ts-node sandbox.ts"
10
10
  },
11
11
  "repository": {
12
12
  "type": "git",
@@ -14,6 +14,7 @@ import ErrorCode from '../shared/types/ErrorCode';
14
14
 
15
15
  // Import shared types
16
16
  import ZoomMeetingRecordings from '../types/ZoomMeetingRecordings';
17
+ import ZoomRecordingInAccount from '../types/ZoomRecordingInAccount';
17
18
 
18
19
  // Import shared helper
19
20
  import {
@@ -23,7 +24,72 @@ import {
23
24
 
24
25
  class ECatCloudRecording extends EndpointCategory {
25
26
  /**
26
- * Get all recordings of a meeting
27
+ * List recordings in the account (Medium)
28
+ * @author Gabe Abrams
29
+ * @instance
30
+ * @memberof api.cloudRecording
31
+ * @method listAccountRecordings
32
+ * @param opts object containing all arguments
33
+ * @param opts.fromYear the start of the date range to list recordings for (e.g. 2026)
34
+ * @param opts.fromMonth the month of the date range to list recordings for (1-12)
35
+ * @param [opts.fromDay] the day of the month of the date range to list recordings for (1-31, defaults to 1)
36
+ * @param [opts.accountId] the account ID of the account of interest (defaults to the account
37
+ * associated with the current access)
38
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
39
+ * The function is passed the new page of results as an argument.
40
+ * @returns the list of recordings in the account
41
+ */
42
+ async listAccountRecordings(
43
+ opts: {
44
+ fromYear: number,
45
+ fromMonth: number,
46
+ fromDay?: number,
47
+ accountId?: string,
48
+ onNewPage?: (recordings: ZoomRecordingInAccount[]) => void,
49
+ },
50
+ ): Promise<ZoomRecordingInAccount[]> {
51
+ // Generate from date
52
+ const {
53
+ fromYear,
54
+ fromMonth,
55
+ } = opts;
56
+ const fromMonthPadded = fromMonth < 10 ? `0${fromMonth}` : fromMonth;
57
+ const fromDay = opts.fromDay ?? 1;
58
+ const fromDayPadded = fromDay < 10 ? `0${fromDay}` : fromDay;
59
+ const fromDateString = `${fromYear}-${fromMonthPadded}-${fromDayPadded}`;
60
+
61
+ // Generate to date
62
+ let toYear = fromYear;
63
+ let toMonth = opts.fromMonth + 1;
64
+ if (toMonth > 12) {
65
+ toMonth = 1;
66
+ toYear += 1;
67
+ }
68
+ let toMonthPadded = toMonth < 10 ? `0${toMonth}` : toMonth;
69
+ let toDay = fromDay;
70
+ let toDayPadded = toDay < 10 ? `0${toDay}` : toDay;
71
+ const toDateString = `${toYear}-${toMonthPadded}-${toDayPadded}`;
72
+
73
+ return this.visitEndpoint({
74
+ path: `/accounts/${opts.accountId ?? 'me'}/recordings`,
75
+ action: 'list recordings in the account',
76
+ method: 'GET',
77
+ params: {
78
+ page_size: 300, // max allowed page size
79
+ from: fromDateString,
80
+ to: toDateString,
81
+ },
82
+ onNewPage: opts.onNewPage,
83
+ itemKey: 'meetings',
84
+ errorMap: {
85
+ 400: 'Bad request',
86
+ 404: 'No recordings found',
87
+ },
88
+ });
89
+ }
90
+
91
+ /**
92
+ * Get all recordings of a meeting (Light)
27
93
  * @author Aryan Pandey
28
94
  * @instance
29
95
  * @memberof api.cloudRecording
@@ -74,17 +140,13 @@ class ECatCloudRecording extends EndpointCategory {
74
140
  }
75
141
 
76
142
  /**
77
- * List all cloud recordings of a user
143
+ * List all cloud recordings of a user (Medium)
78
144
  * @author Aryan Pandey
79
145
  * @instance
80
146
  * @memberof api.cloudRecording
81
147
  * @method listUserRecordings
82
148
  * @param opts object containing all arguments
83
149
  * @param opts.userId the user ID or email address of the user
84
- * @param [opts.pageSize=300] number of records
85
- * returned from a single API call
86
- * @param [opts.nextPageToken] token used to pageinate
87
- * through large result sets
88
150
  * @param [opts.searchTrash=false] set to true to retrieve
89
151
  * meeting recordings from the trash.
90
152
  * @param [opts.startDate=1 month before today]
@@ -95,26 +157,26 @@ class ECatCloudRecording extends EndpointCategory {
95
157
  * constructor or instance of Date object.
96
158
  * Date needs to be within past 6 months. Time data (hours and seconds)
97
159
  * is discarded
160
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
161
+
98
162
  * @returns List of Zoom Recordings {@link https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist#responses}
99
163
  */
100
164
  async listUserRecordings(
101
165
  opts: {
102
166
  userId: string,
103
- pageSize?: number,
104
- nextPageToken?: string,
105
167
  searchTrash?: boolean,
106
168
  startDate?: (string | Date),
107
169
  endDate?: (string | Date),
170
+ onNewPage?: (recordings: ZoomMeetingRecordings[]) => void,
108
171
  },
109
172
  ): Promise<ZoomMeetingRecordings[]> {
110
173
  // Destructure arguments
111
174
  const {
112
175
  userId,
113
176
  searchTrash,
114
- nextPageToken,
115
177
  startDate,
116
178
  endDate,
117
- pageSize,
179
+ onNewPage,
118
180
  } = opts;
119
181
 
120
182
  // Declare default start Date to 1 month before
@@ -135,17 +197,6 @@ class ECatCloudRecording extends EndpointCategory {
135
197
  from: formatDate(defaultDate, 'startDate'),
136
198
  };
137
199
 
138
- if (pageSize) {
139
- // Throw error if pageSize is over max val of 300
140
- if (pageSize > 300) {
141
- throw new ZACCLError({
142
- message: `We requested ${pageSize} recordings from Zoom but it can only give us 300 at a time`,
143
- code: ErrorCode.InvalidPageSize,
144
- });
145
- }
146
- params.page_size = pageSize;
147
- }
148
-
149
200
  if (startDate) {
150
201
  params.from = formatDate(startDate, 'startDate');
151
202
  }
@@ -154,19 +205,13 @@ class ECatCloudRecording extends EndpointCategory {
154
205
  params.to = formatDate(endDate, 'endDate');
155
206
  }
156
207
 
157
- if (nextPageToken) {
158
- params.next_page_token = nextPageToken;
159
- }
160
-
161
208
  return this.visitEndpoint({
162
209
  path: `/users/${userId}/recordings`,
163
210
  action: 'list all cloud recordings of a user',
164
211
  method: 'GET',
165
212
  params,
166
- postProcessor: (body) => {
167
- // Extract the recordings from the body
168
- return Array.from(body.meetings);
169
- },
213
+ onNewPage: opts.onNewPage,
214
+ itemKey: 'meetings',
170
215
  errorMap: {
171
216
  404: {
172
217
  1001: `We could not find the Zoom user ${userId} on this account`,
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Category of endpoints for Zoom groups
3
+ * @author Gabe Abrams
4
+ * @namespace api.group
5
+ */
6
+
7
+ // Import shared interfaces
8
+ import EndpointCategory from '../shared/interfaces/EndpointCategory';
9
+
10
+ // Import shared types
11
+ import ZoomGroup from '../types/ZoomGroup';
12
+ import ZoomGroupMember from '../types/ZoomGroupMember';
13
+
14
+ class ECatGroup extends EndpointCategory {
15
+ /**
16
+ * List groups in the account (Medium)
17
+ * @author Gabe Abrams
18
+ * @instance
19
+ * @memberof api.account
20
+ * @method listGroups
21
+ * @param [opts] object containing all arguments
22
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
23
+ * @returns the list of groups in the account
24
+ */
25
+ async listGroups(
26
+ opts: {
27
+ onNewPage?: (groups: ZoomGroup[]) => void,
28
+ } = {},
29
+ ): Promise<ZoomGroup[]> {
30
+ return this.visitEndpoint({
31
+ path: '/groups',
32
+ action: 'list groups in the account',
33
+ method: 'GET',
34
+ params: {
35
+ page_size: 10, // max allowed page size
36
+ // TODO: change above to 300
37
+ },
38
+ errorMap: {
39
+ 400: 'Bad request',
40
+ 404: {
41
+ 4130: 'No groups found for this account.',
42
+ },
43
+ },
44
+ itemKey: 'groups',
45
+ onNewPage: opts.onNewPage,
46
+ });
47
+ }
48
+
49
+ /**
50
+ * List the members within a group (Medium)
51
+ * @author Gabe Abrams
52
+ * @instance
53
+ * @memberof api.group
54
+ * @method listGroupMembers
55
+ * @param opts object containing all arguments
56
+ * @params opts.groupId the group ID of the group of interest
57
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
58
+ * @returns the list of members in the group
59
+ */
60
+ async listGroupMembers(
61
+ opts: {
62
+ groupId: string,
63
+ onNewPage?: (groupMembers: ZoomGroupMember[]) => void,
64
+ },): Promise<ZoomGroupMember[]> {
65
+ return this.visitEndpoint({
66
+ path: `/groups/${opts.groupId}/members`,
67
+ action: 'list members in a Zoom group',
68
+ method: 'GET',
69
+ params: {
70
+ page_size: 2000, // max allowed page size
71
+ },
72
+ itemKey: 'members',
73
+ errorMap: {
74
+ 400: 'Bad request',
75
+ 404: {
76
+ 4130: 'No groups found for this account.',
77
+ },
78
+ },
79
+ onNewPage: opts.onNewPage,
80
+ });
81
+ }
82
+ }
83
+
84
+ /*------------------------------------------------------------------------*/
85
+ /* Export */
86
+ /*------------------------------------------------------------------------*/
87
+
88
+ export default ECatGroup;
89
+
@@ -22,10 +22,13 @@ import ZoomPollStatus from '../types/ZoomPollStatus';
22
22
  import ZoomPollQuestion from '../types/ZoomPollQuestion';
23
23
  import ZoomMeetingDetails from '../types/ZoomMeetingDetails';
24
24
  import ZoomMeetingIdAndStartTime from '../types/ZoomMeetingIdAndStartTime';
25
+ import ZoomMeetingTranscript from '../types/ZoomMeetingTranscript';
26
+ import ZoomPastMeetingParticipant from '../types/ZoomPastMeetingParticipant';
27
+ import ZoomPastMeetingDetails from '../types/ZoomPastMeetingDetails';
25
28
 
26
29
  class ECatMeeting extends EndpointCategory {
27
30
  /**
28
- * Get info on a meeting
31
+ * Get info on a meeting (Light)
29
32
  * @author Gabe Abrams
30
33
  * @author Aryan Pandey
31
34
  * @instance
@@ -36,7 +39,7 @@ class ECatMeeting extends EndpointCategory {
36
39
  * @param [opts.occurrenceId] ID for the meeting occurrence
37
40
  * @param [opts.showAllOccurrences=false] if truthy,
38
41
  * retrieves all past occurrences
39
- * @returns Zoom meeting object {@link https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting#responses}
42
+ * @returns Zoom meeting object
40
43
  */
41
44
  async get(
42
45
  opts: {
@@ -78,7 +81,7 @@ class ECatMeeting extends EndpointCategory {
78
81
  }
79
82
 
80
83
  /**
81
- * Create a new meeting
84
+ * Create a new meeting (Light)
82
85
  * @author Gabe Abrams
83
86
  * @author Aryan Pandey
84
87
  * @instance
@@ -110,7 +113,7 @@ class ECatMeeting extends EndpointCategory {
110
113
  }
111
114
 
112
115
  /**
113
- * Update a meeting
116
+ * Update a meeting (Light)
114
117
  * @author Gabe Abrams
115
118
  * @author Aryan Pandey
116
119
  * @instance
@@ -154,7 +157,7 @@ class ECatMeeting extends EndpointCategory {
154
157
  }
155
158
 
156
159
  /**
157
- * Delete a meeting
160
+ * Delete a meeting (Light)
158
161
  * @author Gabe Abrams
159
162
  * @author Aryan Pandey
160
163
  * @instance
@@ -212,7 +215,7 @@ class ECatMeeting extends EndpointCategory {
212
215
  }
213
216
 
214
217
  /**
215
- * Get a list of ended meeting instances
218
+ * Get a list of ended meeting instances (Medium)
216
219
  * @author Gabe Abrams
217
220
  * @author Aryan Pandey
218
221
  * @instance
@@ -234,11 +237,12 @@ class ECatMeeting extends EndpointCategory {
234
237
  errorMap: {
235
238
  404: `We could not find a meeting with the ID ${opts.meetingId}`,
236
239
  },
240
+ itemKey: 'meetings',
237
241
  });
238
242
  }
239
243
 
240
244
  /**
241
- * Get details of a past meeting instance
245
+ * Get details of a past meeting instance (Light)
242
246
  * @author Yuen Ler Chow
243
247
  * @instance
244
248
  * @memberof api.meeting
@@ -270,7 +274,7 @@ class ECatMeeting extends EndpointCategory {
270
274
  }
271
275
 
272
276
  /**
273
- * List past poll occurrences
277
+ * List past poll occurrences (Medium)
274
278
  * @author Yuen Ler Chow
275
279
  * @instance
276
280
  * @memberof api.meeting
@@ -394,7 +398,7 @@ class ECatMeeting extends EndpointCategory {
394
398
  }
395
399
 
396
400
  /**
397
- * Get poll info
401
+ * Get poll info (Light)
398
402
  * @author Yuen Ler Chow
399
403
  * @instance
400
404
  * @memberof api.meeting
@@ -554,7 +558,7 @@ class ECatMeeting extends EndpointCategory {
554
558
  * user is added as the only alt-host. This is because Zoom doesn't give us
555
559
  * enough information to determine which user is deactivated, and thus,
556
560
  * the only way to resolve the issue is to remove all previously existing
557
- * alt-hosts.
561
+ * alt-hosts. (Light)
558
562
  * @author Gabe Abrams
559
563
  * @author Aryan Pandey
560
564
  * @instance
@@ -631,6 +635,73 @@ class ECatMeeting extends EndpointCategory {
631
635
  // return updated meeting object
632
636
  return meetingObj;
633
637
  }
638
+
639
+ /**
640
+ * Get meeting transcript (Medium)
641
+ * @author Gabe Abrams
642
+ * @instance
643
+ * @memberof api.meeting
644
+ * @method getTranscript
645
+ * @param opts object containing all arguments
646
+ * @param opts.meetingId the Zoom ID of the meeting (or UUID of a past meeting instance)
647
+ * @returns meeting transcript
648
+ */
649
+ async getTranscript(
650
+ opts: {
651
+ meetingId: number,
652
+ },
653
+ ): Promise<ZoomMeetingTranscript> {
654
+ return this.visitEndpoint({
655
+ path: `/meetings/${opts.meetingId}/transcript`,
656
+ action: 'get the meeting transcript',
657
+ method: 'GET',
658
+ errorMap: {
659
+ 400: 'Invalid meeting ID',
660
+ 403: 'You do not have permission to access the transcript for this meeting',
661
+ 404: {
662
+ 3322: 'The meeting transcript does not exist',
663
+ },
664
+ },
665
+ });
666
+ }
667
+
668
+ /**
669
+ * Get list of participants in a past meeting (Medium)
670
+ * @author Gabe Abrams
671
+ * @instance
672
+ * @memberof api.meeting
673
+ * @method listPastMeetingParticipants
674
+ * @param opts object containing all arguments
675
+ * @param opts.meetingId the Zoom UUID of the past meeting instance
676
+ * @param [opts.onNewPage] callback function that is called when a new page of results is received.
677
+ * @returns list of past meeting participants
678
+ */
679
+ async listPastMeetingParticipants(
680
+ opts: {
681
+ meetingId: string,
682
+ onNewPage?: (participants: ZoomPastMeetingParticipant[]) => void,
683
+ },
684
+ ): Promise<ZoomPastMeetingParticipant[]> {
685
+ return this.visitEndpoint({
686
+ path: `/past_meetings/${opts.meetingId}/participants`,
687
+ action: 'get the list of participants in a past meeting',
688
+ method: 'GET',
689
+ params: {
690
+ page_size: 300, // max allowed page size
691
+ },
692
+ itemKey: 'participants',
693
+ onNewPage: opts.onNewPage,
694
+ errorMap: {
695
+ 400: {
696
+ 200: 'You need a paid account to access the participant list of a past meeting.',
697
+ 12702: 'You are not allowed to access information about meetings that occurred more than 1 year ago.',
698
+ },
699
+ 404: {
700
+ 3001: 'The meeting ID is invalid or the meeting has not ended.',
701
+ },
702
+ },
703
+ });
704
+ }
634
705
  }
635
706
 
636
707
  /*------------------------------------------------------------------------*/