@pipedream/zoom 0.7.0 → 0.8.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 (37) hide show
  1. package/README.md +2 -2
  2. package/actions/add-meeting-registrant/add-meeting-registrant.mjs +6 -1
  3. package/actions/add-webinar-registrant/add-webinar-registrant.mjs +6 -1
  4. package/actions/create-meeting/create-meeting.mjs +6 -1
  5. package/actions/create-user/create-user.mjs +6 -1
  6. package/actions/delete-meeting/delete-meeting.mjs +65 -0
  7. package/actions/delete-user/delete-user.mjs +6 -1
  8. package/actions/get-meeting-details/get-meeting-details.mjs +8 -2
  9. package/actions/get-meeting-transcript/get-meeting-transcript.mjs +8 -2
  10. package/actions/get-webinar-details/get-webinar-details.mjs +6 -1
  11. package/actions/list-call-recordings/list-call-recordings.mjs +6 -1
  12. package/actions/list-channels/list-channels.mjs +6 -1
  13. package/actions/list-past-meeting-participants/list-past-meeting-participants.mjs +8 -2
  14. package/actions/list-past-webinar-qa/list-past-webinar-qa.mjs +8 -2
  15. package/actions/list-user-call-logs/list-user-call-logs.mjs +6 -1
  16. package/actions/list-webinar-participants-report/list-webinar-participants-report.mjs +7 -2
  17. package/actions/send-chat-message/send-chat-message.mjs +6 -1
  18. package/actions/update-meeting/update-meeting.mjs +8 -2
  19. package/actions/update-webinar/update-webinar.mjs +8 -2
  20. package/actions/view-user/view-user.mjs +6 -1
  21. package/common/utils.mjs +8 -0
  22. package/package.json +2 -2
  23. package/sources/custom-event/custom-event.mjs +1 -1
  24. package/sources/meeting-created/meeting-created.mjs +1 -1
  25. package/sources/meeting-deleted/meeting-deleted.mjs +1 -1
  26. package/sources/meeting-ended/meeting-ended.mjs +1 -1
  27. package/sources/meeting-started/meeting-started.mjs +1 -1
  28. package/sources/meeting-updated/meeting-updated.mjs +1 -1
  29. package/sources/new-recording-transcript-completed/new-recording-transcript-completed.mjs +1 -1
  30. package/sources/phone-event/phone-event.mjs +1 -1
  31. package/sources/recording-completed/recording-completed.mjs +1 -1
  32. package/sources/webinar-created/webinar-created.mjs +1 -1
  33. package/sources/webinar-deleted/webinar-deleted.mjs +1 -1
  34. package/sources/webinar-ended/webinar-ended.mjs +1 -1
  35. package/sources/webinar-started/webinar-started.mjs +1 -1
  36. package/sources/webinar-updated/webinar-updated.mjs +1 -1
  37. package/zoom.app.mjs +39 -2
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Overview
2
2
  The Zoom API lets you tap into a rich set of functionalities to enhance the video conferencing experience within your own app or workflow. With the Zoom API on Pipedream, you can automatically create meetings, manage users, send meeting notifications, and more, orchestrating these actions within a broader automation. This allows for seamless integration with other services, enabling both data collection and action triggers based on Zoom events.
3
3
 
4
- **Pipedream [workflows](/workflows/) allow you to run any Node.js code that connects to the Zoom API**. Just [create a new workflow](https://pipedream.com/new), then add prebuilt Zoom [actions](/components#actions) (create a meeting, send a chat message, etc.) or [write your own code](/code/). These workflows can be triggered by HTTP requests, timers, email, or on any app-based event (new tweets, a Github PR, Zoom events, etc).
4
+ **Pipedream [workflows](/workflows/) allow you to run any Node.js code that connects to the Zoom API**. Just [create a new workflow](https://pipedream.com/new), then add prebuilt Zoom [actions](/components#actions) (create a meeting, send a chat message, etc.) or [write your own code](/code/). These workflows can be triggered by HTTP requests, timers, email, or on any app-based event (new tweets, a GitHub PR, Zoom events, etc).
5
5
 
6
6
  # Getting Started
7
7
 
@@ -33,4 +33,4 @@ The [Zoom API docs on permissions](https://marketplace.zoom.us/docs/guides/autho
33
33
 
34
34
  - **Zoom Webinar Attendee Management**: Build a workflow where new sign-ups from an event management platform like Eventbrite trigger the addition of these attendees to a Zoom webinar. Post-webinar, send a follow-up email via Mailgun with a link to the webinar recording, which you can upload to a cloud storage platform like Dropbox.
35
35
 
36
- - **Meeting Analytics and Reporting**: Combine Zoom's meeting ended webhook with Pipedream's capabilities to create a workflow that captures meeting details upon conclusion. With this data, you can send a summary email to the host, update a Google Sheet with attendance information, and even push the data to a BI tool like Tableau for more in-depth analysis.
36
+ - **Meeting Analytics and Reporting**: Combine Zoom's meeting ended webhook with Pipedream's capabilities to create a workflow that captures meeting details upon conclusion. With this data, you can send a summary email to the host, update a Google Sheet with attendance information, and even push the data to a BI tool like Tableau for more in-depth analysis.
@@ -4,7 +4,12 @@ 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.3",
7
+ version: "0.3.6",
8
+ annotations: {
9
+ destructiveHint: false,
10
+ openWorldHint: true,
11
+ readOnlyHint: false,
12
+ },
8
13
  type: "action",
9
14
  props: {
10
15
  app,
@@ -4,7 +4,12 @@ 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.3",
7
+ version: "0.3.6",
8
+ annotations: {
9
+ destructiveHint: false,
10
+ openWorldHint: true,
11
+ readOnlyHint: false,
12
+ },
8
13
  type: "action",
9
14
  props: {
10
15
  app,
@@ -5,7 +5,12 @@ export default {
5
5
  key: "zoom-create-meeting",
6
6
  name: "Create Meeting",
7
7
  description: "Creates a meeting for a user. A maximum of 100 meetings can be created for a user in a day.",
8
- version: "0.1.4",
8
+ version: "0.1.5",
9
+ annotations: {
10
+ destructiveHint: false,
11
+ openWorldHint: true,
12
+ readOnlyHint: false,
13
+ },
9
14
  type: "action",
10
15
  props: {
11
16
  zoom: {
@@ -5,7 +5,12 @@ export default {
5
5
  key: "zoom-create-user",
6
6
  name: "Create User",
7
7
  description: "Creates a new user in your account.",
8
- version: "0.2.4",
8
+ version: "0.2.5",
9
+ annotations: {
10
+ destructiveHint: false,
11
+ openWorldHint: true,
12
+ readOnlyHint: false,
13
+ },
9
14
  type: "action",
10
15
  props: {
11
16
  zoom: {
@@ -0,0 +1,65 @@
1
+ import zoom from "../../zoom.app.mjs";
2
+
3
+ export default {
4
+ key: "zoom-delete-meeting",
5
+ name: "Delete Meeting",
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",
8
+ type: "action",
9
+ annotations: {
10
+ destructiveHint: true,
11
+ openWorldHint: true,
12
+ readOnlyHint: false,
13
+ },
14
+ props: {
15
+ zoom,
16
+ meetingId: {
17
+ propDefinition: [
18
+ zoom,
19
+ "meetingId",
20
+ ],
21
+ description: "The ID of the meeting to delete",
22
+ optional: false,
23
+ },
24
+ occurrenceId: {
25
+ propDefinition: [
26
+ zoom,
27
+ "occurrenceId",
28
+ ({ meetingId }) => ({
29
+ meetingId,
30
+ }),
31
+ ],
32
+ },
33
+ scheduleForReminder: {
34
+ type: "boolean",
35
+ label: "Schedule for Reminder",
36
+ description: "If `true`, notify host and alternative host about the meeting cancellation via email. If `false`, do not send any email notification.",
37
+ optional: true,
38
+ },
39
+ cancelMeetingReminder: {
40
+ type: "boolean",
41
+ label: "Cancel Meeting Reminder",
42
+ description: "If `true`, notify registrants about the meeting cancellation via email. If `false`, do not send any email notification to meeting registrants.",
43
+ optional: true,
44
+ },
45
+ },
46
+ async run({ $ }) {
47
+ const response = await this.zoom.deleteMeeting({
48
+ $,
49
+ meetingId: this.meetingId,
50
+ params: {
51
+ occurrence_id: this.occurrenceId,
52
+ schedule_for_reminder: this.scheduleForReminder,
53
+ cancel_meeting_reminder: this.cancelMeetingReminder,
54
+ },
55
+ });
56
+
57
+ if (this.occurrenceId) {
58
+ $.export("$summary", `The occurrence "${this.occurrenceId}" related to the meeting "${this.meetingId}" was successfully deleted`);
59
+ } else {
60
+ $.export("$summary", `The meeting "${this.meetingId}" was successfully deleted`);
61
+ }
62
+
63
+ return response;
64
+ },
65
+ };
@@ -5,7 +5,12 @@ export default {
5
5
  key: "zoom-delete-user",
6
6
  name: "Delete User",
7
7
  description: "Disassociates (unlinks) a user from the associated account or permanently deletes a user.",
8
- version: "0.2.4",
8
+ version: "0.2.5",
9
+ annotations: {
10
+ destructiveHint: true,
11
+ openWorldHint: true,
12
+ readOnlyHint: false,
13
+ },
9
14
  type: "action",
10
15
  props: {
11
16
  zoom: {
@@ -1,11 +1,17 @@
1
1
  // legacy_hash_id: a_Xzi12a
2
2
  import { axios } from "@pipedream/platform";
3
+ import utils from "../../common/utils.mjs";
3
4
 
4
5
  export default {
5
6
  key: "zoom-get-meeting-details",
6
7
  name: "Get Meeting Details",
7
8
  description: "Retrieves the details of a meeting.",
8
- version: "0.3.4",
9
+ version: "0.3.6",
10
+ annotations: {
11
+ destructiveHint: false,
12
+ openWorldHint: true,
13
+ readOnlyHint: true,
14
+ },
9
15
  type: "action",
10
16
  props: {
11
17
  zoom: {
@@ -25,7 +31,7 @@ export default {
25
31
  async run({ $ }) {
26
32
  //See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting
27
33
  const config = {
28
- url: `https://api.zoom.us/v2/meetings/${this.meeting_id}`,
34
+ url: `https://api.zoom.us/v2/meetings/${utils.doubleEncode(this.meeting_id)}`,
29
35
  params: {
30
36
  occurrence_id: this.occurrence_id,
31
37
  },
@@ -1,10 +1,16 @@
1
+ import utils from "../../common/utils.mjs";
1
2
  import zoom from "../../zoom.app.mjs";
2
3
 
3
4
  export default {
4
5
  key: "zoom-get-meeting-transcript",
5
6
  name: "Get Meeting Transcript",
6
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)",
7
- version: "0.0.1",
8
+ version: "0.0.4",
9
+ annotations: {
10
+ destructiveHint: false,
11
+ openWorldHint: true,
12
+ readOnlyHint: true,
13
+ },
8
14
  type: "action",
9
15
  props: {
10
16
  zoom,
@@ -22,7 +28,7 @@ export default {
22
28
  meetingId, ...opts
23
29
  }) {
24
30
  return this.zoom._makeRequest({
25
- path: `/meetings/${meetingId}/transcript`,
31
+ path: `/meetings/${utils.doubleEncode(meetingId)}/transcript`,
26
32
  ...opts,
27
33
  });
28
34
  },
@@ -4,7 +4,12 @@ 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.3",
7
+ version: "0.3.6",
8
+ annotations: {
9
+ destructiveHint: false,
10
+ openWorldHint: true,
11
+ readOnlyHint: true,
12
+ },
8
13
  type: "action",
9
14
  props: {
10
15
  app,
@@ -4,7 +4,12 @@ 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.1",
7
+ version: "0.0.4",
8
+ annotations: {
9
+ destructiveHint: false,
10
+ openWorldHint: true,
11
+ readOnlyHint: true,
12
+ },
8
13
  type: "action",
9
14
  props: {
10
15
  zoom,
@@ -5,7 +5,12 @@ export default {
5
5
  key: "zoom-list-channels",
6
6
  name: "List Channels",
7
7
  description: "List a user's chat channels.",
8
- version: "0.1.4",
8
+ version: "0.1.5",
9
+ annotations: {
10
+ destructiveHint: false,
11
+ openWorldHint: true,
12
+ readOnlyHint: true,
13
+ },
9
14
  type: "action",
10
15
  props: {
11
16
  zoom: {
@@ -1,10 +1,16 @@
1
+ import utils from "../../common/utils.mjs";
1
2
  import app from "../../zoom.app.mjs";
2
3
 
3
4
  export default {
4
5
  key: "zoom-list-past-meeting-participants",
5
6
  name: "List Past Meeting Participants",
6
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).",
7
- version: "0.2.3",
8
+ version: "0.2.6",
9
+ annotations: {
10
+ destructiveHint: false,
11
+ openWorldHint: true,
12
+ readOnlyHint: true,
13
+ },
8
14
  type: "action",
9
15
  props: {
10
16
  app,
@@ -20,7 +26,7 @@ export default {
20
26
  meetingId, ...args
21
27
  } = {}) {
22
28
  return this.app._makeRequest({
23
- path: `/past_meetings/${meetingId}/participants`,
29
+ path: `/past_meetings/${utils.doubleEncode(meetingId)}/participants`,
24
30
  ...args,
25
31
  });
26
32
  },
@@ -1,11 +1,17 @@
1
1
  // legacy_hash_id: a_67iQp1
2
2
  import { axios } from "@pipedream/platform";
3
+ import utils from "../../common/utils.mjs";
3
4
 
4
5
  export default {
5
6
  key: "zoom-list-past-webinar-qa",
6
7
  name: "List Past Webinar Q&A",
7
8
  description: "The feature for Webinars allows attendees to ask questions during the Webinar and for the panelists, co-hosts and host to answer their questions. Use this API to list Q&A of a specific Webinar.",
8
- version: "0.1.4",
9
+ version: "0.1.6",
10
+ annotations: {
11
+ destructiveHint: false,
12
+ openWorldHint: true,
13
+ readOnlyHint: true,
14
+ },
9
15
  type: "action",
10
16
  props: {
11
17
  zoom: {
@@ -20,7 +26,7 @@ export default {
20
26
  },
21
27
  async run({ $ }) {
22
28
  const config = {
23
- url: `https://api.zoom.us/v2/past_webinars/${this.webinarID}/qa`,
29
+ url: `https://api.zoom.us/v2/past_webinars/${utils.doubleEncode(this.webinarID)}/qa`,
24
30
  headers: {
25
31
  Authorization: `Bearer ${this.zoom.$auth.oauth_access_token}`,
26
32
  },
@@ -4,7 +4,12 @@ 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.3",
7
+ version: "0.0.6",
8
+ annotations: {
9
+ destructiveHint: false,
10
+ openWorldHint: true,
11
+ readOnlyHint: true,
12
+ },
8
13
  type: "action",
9
14
  props: {
10
15
  zoom,
@@ -5,7 +5,12 @@ 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.4",
8
+ version: "0.0.7",
9
+ annotations: {
10
+ destructiveHint: false,
11
+ openWorldHint: true,
12
+ readOnlyHint: true,
13
+ },
9
14
  type: "action",
10
15
  props: {
11
16
  app,
@@ -33,7 +38,7 @@ export default {
33
38
  webinarId, ...args
34
39
  } = {}) {
35
40
  return this.app._makeRequest({
36
- path: `/report/webinars/${webinarId}/participants`,
41
+ path: `/report/webinars/${utils.doubleEncode(webinarId)}/participants`,
37
42
  ...args,
38
43
  });
39
44
  },
@@ -5,7 +5,12 @@ export default {
5
5
  key: "zoom-send-chat-message",
6
6
  name: "Send Chat Message",
7
7
  description: "Send chat messages on Zoom to either an individual user who is in your contact list or to a of which you are a member.",
8
- version: "0.1.4",
8
+ version: "0.1.5",
9
+ annotations: {
10
+ destructiveHint: false,
11
+ openWorldHint: true,
12
+ readOnlyHint: false,
13
+ },
9
14
  type: "action",
10
15
  props: {
11
16
  zoom: {
@@ -1,11 +1,17 @@
1
1
  // legacy_hash_id: a_52iXNQ
2
2
  import { axios } from "@pipedream/platform";
3
+ import utils from "../../common/utils.mjs";
3
4
 
4
5
  export default {
5
6
  key: "zoom-update-meeting",
6
7
  name: "Update Meeting",
7
8
  description: "Updates an existing Zoom meeting",
8
- version: "0.1.4",
9
+ version: "0.1.6",
10
+ annotations: {
11
+ destructiveHint: true,
12
+ openWorldHint: true,
13
+ readOnlyHint: false,
14
+ },
9
15
  type: "action",
10
16
  props: {
11
17
  zoom: {
@@ -72,7 +78,7 @@ export default {
72
78
  // API docs: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingupdate
73
79
  const config = {
74
80
  method: "PATCH",
75
- url: `https://api.zoom.us/v2/meetings/${this.meetingId}`,
81
+ url: `https://api.zoom.us/v2/meetings/${utils.doubleEncode(this.meetingId)}`,
76
82
  data: {
77
83
  topic: this.topic,
78
84
  type: this.type,
@@ -1,11 +1,17 @@
1
1
  // legacy_hash_id: a_Q3irlY
2
2
  import { axios } from "@pipedream/platform";
3
+ import utils from "../../common/utils.mjs";
3
4
 
4
5
  export default {
5
6
  key: "zoom-update-webinar",
6
7
  name: "Update Webinar",
7
8
  description: "Update a webinar's topic, start time, or other settings",
8
- version: "0.1.4",
9
+ version: "0.1.6",
10
+ annotations: {
11
+ destructiveHint: true,
12
+ openWorldHint: true,
13
+ readOnlyHint: false,
14
+ },
9
15
  type: "action",
10
16
  props: {
11
17
  zoom: {
@@ -72,7 +78,7 @@ export default {
72
78
  // API docs: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingupdate
73
79
  const config = {
74
80
  method: "PATCH",
75
- url: `https://api.zoom.us/v2/webinars/${this.webinarID}`,
81
+ url: `https://api.zoom.us/v2/webinars/${utils.doubleEncode(this.webinarID)}`,
76
82
  data: {
77
83
  topic: this.topic,
78
84
  type: this.type,
@@ -5,7 +5,12 @@ export default {
5
5
  key: "zoom-view-user",
6
6
  name: "View User",
7
7
  description: "View your user information",
8
- version: "0.1.4",
8
+ version: "0.1.5",
9
+ annotations: {
10
+ destructiveHint: false,
11
+ openWorldHint: true,
12
+ readOnlyHint: true,
13
+ },
9
14
  type: "action",
10
15
  props: {
11
16
  zoom: {
package/common/utils.mjs CHANGED
@@ -14,7 +14,15 @@ function summaryEnd(count, singular, plural) {
14
14
  return `${count} ${noun}`;
15
15
  }
16
16
 
17
+ function doubleEncode(value) {
18
+ if ((typeof value === "string") && (value.startsWith("/") || value.includes("//"))) {
19
+ return encodeURIComponent(encodeURIComponent(value));
20
+ }
21
+ return value;
22
+ }
23
+
17
24
  export default {
18
25
  streamIterator,
19
26
  summaryEnd,
27
+ doubleEncode,
20
28
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pipedream/zoom",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Pipedream Zoom Components",
5
5
  "main": "zoom.app.mjs",
6
6
  "keywords": [
@@ -14,6 +14,6 @@
14
14
  "access": "public"
15
15
  },
16
16
  "dependencies": {
17
- "@pipedream/platform": "^3.1.0"
17
+ "@pipedream/platform": "^3.1.1"
18
18
  }
19
19
  }
@@ -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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
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.4",
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-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.3",
9
+ version: "0.1.5",
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.1",
9
+ version: "0.0.3",
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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
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.3",
9
+ version: "0.1.5",
10
10
  type: "source",
11
11
  dedupe: "unique",
12
12
  props: {
package/zoom.app.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import { axios } from "@pipedream/platform";
2
2
  import constants from "./common/constants.mjs";
3
+ import utils from "./common/utils.mjs";
3
4
 
4
5
  export default {
5
6
  type: "app",
@@ -31,7 +32,7 @@ export default {
31
32
  },
32
33
  },
33
34
  meetingId: {
34
- type: "integer",
35
+ type: "string",
35
36
  label: "Meeting ID",
36
37
  description: "The meeting ID to get details for.",
37
38
  async options({ prevContext }) {
@@ -54,6 +55,22 @@ export default {
54
55
  },
55
56
  optional: true,
56
57
  },
58
+ occurrenceId: {
59
+ type: "string",
60
+ label: "Occurrence ID",
61
+ description: "If you select a value for this param, only that instance will be deleted. Otherwise, the entire meeting series will be deleted.",
62
+ optional: true,
63
+ async options({ meetingId }) {
64
+ if (!meetingId) {
65
+ return [];
66
+ }
67
+ const occurrences = await this.listMeetingsOccurrences(meetingId);
68
+ return occurrences.map((occurrence) => ({
69
+ label: `${occurrence.start_time} (${occurrence.status})`,
70
+ value: occurrence.occurrence_id,
71
+ }));
72
+ },
73
+ },
57
74
  userId: {
58
75
  type: "string",
59
76
  label: "User Id",
@@ -246,7 +263,7 @@ export default {
246
263
  meetingId, ...args
247
264
  } = {}) {
248
265
  return this._makeRequest({
249
- path: `/past_meetings/${meetingId}`,
266
+ path: `/past_meetings/${utils.doubleEncode(meetingId)}`,
250
267
  ...args,
251
268
  });
252
269
  },
@@ -296,6 +313,26 @@ export default {
296
313
  ...args,
297
314
  });
298
315
  },
316
+ async listMeetingsOccurrences(meetingId) {
317
+ try {
318
+ meetingId = utils.doubleEncode(meetingId);
319
+ const { occurrences } = await this._makeRequest({
320
+ path: `/meetings/${meetingId}`,
321
+ });
322
+ return occurrences || [];
323
+ } catch {
324
+ return [];
325
+ }
326
+ },
327
+ deleteMeeting({
328
+ meetingId, ...args
329
+ }) {
330
+ return this._makeRequest({
331
+ method: "DELETE",
332
+ path: `/meetings/${utils.doubleEncode(meetingId)}`,
333
+ ...args,
334
+ });
335
+ },
299
336
  async *getResourcesStream({
300
337
  resourceFn,
301
338
  resourceFnArgs,