@pipedream/zoom 0.8.0 → 0.9.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 (27) hide show
  1. package/actions/add-meeting-registrant/add-meeting-registrant.mjs +1 -1
  2. package/actions/add-webinar-registrant/add-webinar-registrant.mjs +1 -1
  3. package/actions/delete-meeting/delete-meeting.mjs +1 -1
  4. package/actions/get-meeting-transcript/get-meeting-transcript.mjs +1 -1
  5. package/actions/get-webinar-details/get-webinar-details.mjs +1 -1
  6. package/actions/list-call-recordings/list-call-recordings.mjs +1 -1
  7. package/actions/list-meetings/list-meetings.mjs +125 -0
  8. package/actions/list-past-meeting-participants/list-past-meeting-participants.mjs +1 -1
  9. package/actions/list-user-call-logs/list-user-call-logs.mjs +1 -1
  10. package/actions/list-webinar-participants-report/list-webinar-participants-report.mjs +1 -1
  11. package/common/constants.mjs +20 -0
  12. package/package.json +1 -1
  13. package/sources/custom-event/custom-event.mjs +1 -1
  14. package/sources/meeting-created/meeting-created.mjs +1 -1
  15. package/sources/meeting-deleted/meeting-deleted.mjs +1 -1
  16. package/sources/meeting-ended/meeting-ended.mjs +1 -1
  17. package/sources/meeting-started/meeting-started.mjs +1 -1
  18. package/sources/meeting-updated/meeting-updated.mjs +1 -1
  19. package/sources/new-recording-transcript-completed/new-recording-transcript-completed.mjs +1 -1
  20. package/sources/phone-event/phone-event.mjs +1 -1
  21. package/sources/recording-completed/recording-completed.mjs +1 -1
  22. package/sources/webinar-created/webinar-created.mjs +1 -1
  23. package/sources/webinar-deleted/webinar-deleted.mjs +1 -1
  24. package/sources/webinar-ended/webinar-ended.mjs +1 -1
  25. package/sources/webinar-started/webinar-started.mjs +1 -1
  26. package/sources/webinar-updated/webinar-updated.mjs +1 -1
  27. package/zoom.app.mjs +39 -0
@@ -4,7 +4,7 @@ export default {
4
4
  key: "zoom-add-meeting-registrant",
5
5
  name: "Add Meeting Registrant",
6
6
  description: "Registers a participant for a meeting. [See the docs here](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetingRegistrantCreate)",
7
- version: "0.3.6",
7
+ version: "0.3.7",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "zoom-add-webinar-registrant",
5
5
  name: "Add Webinar Registrant",
6
6
  description: "Registers a participant for a webinar. [See the docs here](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarregistrantcreate).",
7
- version: "0.3.6",
7
+ version: "0.3.7",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "zoom-delete-meeting",
5
5
  name: "Delete Meeting",
6
6
  description: "Delete a meeting. [See the documentation](https://developers.zoom.us/docs/api/meetings/#tag/meetings/delete/meetings/{meetingId})",
7
- version: "0.0.1",
7
+ version: "0.0.2",
8
8
  type: "action",
9
9
  annotations: {
10
10
  destructiveHint: true,
@@ -5,7 +5,7 @@ export default {
5
5
  key: "zoom-get-meeting-transcript",
6
6
  name: "Get Meeting Transcript",
7
7
  description: "Get the transcript of a meeting. [See the documentation](https://developers.zoom.us/docs/api/meetings/#tag/cloud-recording/get/meetings/{meetingId}/transcript)",
8
- version: "0.0.4",
8
+ version: "0.0.5",
9
9
  annotations: {
10
10
  destructiveHint: false,
11
11
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "zoom-get-webinar-details",
5
5
  name: "Get Webinar Details",
6
6
  description: "Gets details of a scheduled webinar. [See the docs here](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/webinar).",
7
- version: "0.3.6",
7
+ version: "0.3.7",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  name: "List Call Recordings",
5
5
  description: "Get your account's call recordings. [See the documentation](https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/getPhoneRecordings)",
6
6
  key: "zoom-list-call-recordings",
7
- version: "0.0.4",
7
+ version: "0.0.5",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -0,0 +1,125 @@
1
+ import zoom from "../../zoom.app.mjs";
2
+ import constants from "../../common/constants.mjs";
3
+
4
+ export default {
5
+ name: "List Meetings",
6
+ description: "List meetings for a user. [See the documentation](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meetings)",
7
+ key: "zoom-list-meetings",
8
+ version: "0.0.1",
9
+ type: "action",
10
+ annotations: {
11
+ destructiveHint: false,
12
+ openWorldHint: true,
13
+ readOnlyHint: true,
14
+ },
15
+ props: {
16
+ zoom,
17
+ userId: {
18
+ propDefinition: [
19
+ zoom,
20
+ "meetingUserId",
21
+ ],
22
+ },
23
+ type: {
24
+ type: "string",
25
+ label: "Type",
26
+ description: "The type of meetings to list. Defaults to `scheduled`",
27
+ optional: true,
28
+ options: constants.MEETING_TYPES,
29
+ },
30
+ from: {
31
+ type: "string",
32
+ label: "From",
33
+ description: "The start date and time of the meetings to list. Example: `2023-01-01`",
34
+ optional: true,
35
+ },
36
+ to: {
37
+ type: "string",
38
+ label: "To",
39
+ description: "The end date and time of the meetings to list. Example: `2023-01-01`",
40
+ optional: true,
41
+ },
42
+ timezone: {
43
+ type: "string",
44
+ label: "Timezone",
45
+ description: "The timezone to use for the `from` and `to` dates. Example: `America/New_York`",
46
+ optional: true,
47
+ },
48
+ titleSearch: {
49
+ type: "string",
50
+ label: "Title Search",
51
+ description: "The title of the meetings to search for",
52
+ optional: true,
53
+ },
54
+ createdAfter: {
55
+ type: "string",
56
+ label: "Created After",
57
+ description: "The date and time to filter meetings created after. Example: `2023-01-01`",
58
+ optional: true,
59
+ },
60
+ createdBefore: {
61
+ type: "string",
62
+ label: "Created Before",
63
+ description: "The date and time to filter meetings created before. Example: `2023-01-01`",
64
+ optional: true,
65
+ },
66
+ max: {
67
+ propDefinition: [
68
+ zoom,
69
+ "max",
70
+ ],
71
+ },
72
+ },
73
+ methods: {
74
+ isRelevant(meeting) {
75
+ if (this.titleSearch) {
76
+ if (!meeting.topic?.toLowerCase().includes(this.titleSearch.toLowerCase())) {
77
+ return false;
78
+ }
79
+ }
80
+ if (this.createdAfter && Date.parse(meeting.created_at) < Date.parse(this.createdAfter)) {
81
+ return false;
82
+ }
83
+ if (this.createdBefore && Date.parse(meeting.created_at) > Date.parse(this.createdBefore)) {
84
+ return false;
85
+ }
86
+ return true;
87
+ },
88
+ },
89
+ async run({ $ }) {
90
+ const meetings = [];
91
+ let count = 0;
92
+
93
+ const results = this.zoom.getResourcesStream({
94
+ resourceFn: this.zoom.listUserMeetings,
95
+ resourceFnArgs: {
96
+ $,
97
+ userId: this.userId,
98
+ params: {
99
+ type: this.type,
100
+ from: this.from,
101
+ to: this.to,
102
+ timezone: this.timezone,
103
+ },
104
+ },
105
+ resourceName: "meetings",
106
+ });
107
+
108
+ for await (const meeting of results) {
109
+ if (!this.isRelevant(meeting)) {
110
+ continue;
111
+ }
112
+ meetings.push(meeting);
113
+ count++;
114
+ if (count >= this.max) {
115
+ break;
116
+ }
117
+ }
118
+
119
+ $.export("$summary", `Successfully retrieved ${count} meeting${count === 1
120
+ ? ""
121
+ : "s"}`);
122
+
123
+ return meetings;
124
+ },
125
+ };
@@ -5,7 +5,7 @@ export default {
5
5
  key: "zoom-list-past-meeting-participants",
6
6
  name: "List Past Meeting Participants",
7
7
  description: "Retrieve information on participants from a past meeting. [See the docs here](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/pastMeetingParticipants).",
8
- version: "0.2.6",
8
+ version: "0.2.7",
9
9
  annotations: {
10
10
  destructiveHint: false,
11
11
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  name: "List User's Call Logs",
5
5
  description: "Gets a user's Zoom phone call logs. [See the documentation](https://developers.zoom.us/docs/zoom-phone/apis/#operation/phoneUserCallLogs)",
6
6
  key: "zoom-list-user-call-logs",
7
- version: "0.0.6",
7
+ version: "0.0.7",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -5,7 +5,7 @@ export default {
5
5
  key: "zoom-list-webinar-participants-report",
6
6
  name: "List Webinar Participants Report",
7
7
  description: "Retrieves detailed report on each webinar attendee. You can get webinar participant reports for the last 6 months. [See the docs here](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/reportWebinarParticipants).",
8
- version: "0.0.7",
8
+ version: "0.0.8",
9
9
  annotations: {
10
10
  destructiveHint: false,
11
11
  openWorldHint: true,
@@ -2,8 +2,28 @@ const BASE_URL = "https://api.zoom.us";
2
2
  const VERSION_PATH = "/v2";
3
3
  const MAX_RESOURCES = 300;
4
4
 
5
+ const MEETING_TYPES = [
6
+ {
7
+ value: "scheduled",
8
+ label: "All valid previous (unexpired) meetings, live meetings, and upcoming scheduled meetings",
9
+ },
10
+ {
11
+ value: "live",
12
+ label: "All ongoing meetings",
13
+ },
14
+ {
15
+ value: "upcoming",
16
+ label: "All upcoming meetings, including live meetings",
17
+ },
18
+ {
19
+ value: "previous_meetings",
20
+ label: "All the previous meetings",
21
+ },
22
+ ];
23
+
5
24
  export default {
6
25
  BASE_URL,
7
26
  VERSION_PATH,
8
27
  MAX_RESOURCES,
28
+ MEETING_TYPES,
9
29
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pipedream/zoom",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Pipedream Zoom Components",
5
5
  "main": "zoom.app.mjs",
6
6
  "keywords": [
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-custom-event",
7
7
  name: "Custom Events (Instant)",
8
8
  description: "Emit new events tied to your Zoom user or resources you own",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-meeting-created",
7
7
  name: "Meeting Created (Instant)",
8
8
  description: "Emit new event each time a meeting is created where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-meeting-deleted",
7
7
  name: "Meeting Deleted (Instant)",
8
8
  description: "Emit new event each time a meeting is deleted where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-meeting-ended",
7
7
  name: "Meeting Ended (Instant)",
8
8
  description: "Emit new event each time a meeting ends where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-meeting-started",
7
7
  name: "Meeting Started (Instant)",
8
8
  description: "Emit new event each time a meeting starts where you're the host",
9
- version: "0.1.6",
9
+ version: "0.1.7",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-meeting-updated",
7
7
  name: "Meeting Updated (Instant)",
8
8
  description: "Emit new event each time a meeting is updated where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-new-recording-transcript-completed",
7
7
  name: "New Recording Transcript Completed (Instant)",
8
8
  description: "Emit new event each time a recording transcript is completed",
9
- version: "0.0.3",
9
+ version: "0.0.4",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-phone-event",
7
7
  name: "Zoom Phone Events (Instant)",
8
8
  description: "Emit new Zoom Phone event tied to your Zoom user or resources you own",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  props: {
12
12
  ...common.props,
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-recording-completed",
7
7
  name: "Recording Completed (Instant)",
8
8
  description: "Emit new event each time a new recording completes for a meeting or webinar where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-webinar-created",
7
7
  name: "Webinar Created (Instant)",
8
8
  description: "Emit new event each time a webinar is created where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-webinar-deleted",
7
7
  name: "Webinar Deleted (Instant)",
8
8
  description: "Emit new event each time a webinar is deleted where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-webinar-ended",
7
7
  name: "Webinar Ended (Instant)",
8
8
  description: "Emit new event each time a webinar ends where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-webinar-started",
7
7
  name: "Webinar Started (Instant)",
8
8
  description: "Emit new event each time a webinar starts where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
@@ -6,7 +6,7 @@ export default {
6
6
  key: "zoom-webinar-updated",
7
7
  name: "Webinar Updated (Instant)",
8
8
  description: "Emit new event each time a webinar is updated where you're the host",
9
- version: "0.1.5",
9
+ version: "0.1.6",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
package/zoom.app.mjs CHANGED
@@ -96,6 +96,31 @@ export default {
96
96
  };
97
97
  },
98
98
  },
99
+ meetingUserId: {
100
+ type: "string",
101
+ label: "User ID",
102
+ description: "The user ID or email address of the user to list meetings for",
103
+ async options({ prevContext }) {
104
+ const { nextPageToken } = prevContext;
105
+ const response = await this.listAllUsers({
106
+ params: {
107
+ next_page_token: nextPageToken,
108
+ },
109
+ });
110
+ const options = response.users.map(({
111
+ id: value, display_name, email,
112
+ }) => ({
113
+ label: `${display_name} - ${email}`,
114
+ value,
115
+ }));
116
+ return {
117
+ options,
118
+ context: {
119
+ nextPageToken: response.next_page_token,
120
+ },
121
+ };
122
+ },
123
+ },
99
124
  includeAudioRecordings: {
100
125
  type: "boolean",
101
126
  label: "Include Audio Recordings",
@@ -273,6 +298,14 @@ export default {
273
298
  ...args,
274
299
  });
275
300
  },
301
+ listUserMeetings({
302
+ userId, ...args
303
+ }) {
304
+ return this._makeRequest({
305
+ path: `/users/${userId}/meetings`,
306
+ ...args,
307
+ });
308
+ },
276
309
  listWebinars({
277
310
  userId = "me", ...args
278
311
  } = {}) {
@@ -299,6 +332,12 @@ export default {
299
332
  ...opts,
300
333
  });
301
334
  },
335
+ listAllUsers(opts = {}) {
336
+ return this._makeRequest({
337
+ path: "/users",
338
+ ...opts,
339
+ });
340
+ },
302
341
  listCallLogs({
303
342
  userId, ...args
304
343
  }) {