@pipedream/zoom 0.3.2 → 0.3.5

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 (45) hide show
  1. package/README.md +0 -4
  2. package/actions/add-meeting-registrant/add-meeting-registrant.mjs +143 -0
  3. package/actions/add-webinar-registrant/add-webinar-registrant.mjs +143 -0
  4. package/actions/create-meeting/create-meeting.mjs +96 -0
  5. package/actions/create-user/create-user.mjs +48 -0
  6. package/actions/delete-user/delete-user.mjs +68 -0
  7. package/actions/get-meeting-details/get-meeting-details.mjs +38 -0
  8. package/actions/get-webinar-details/get-webinar-details.mjs +38 -0
  9. package/actions/list-channels/list-channels.mjs +43 -0
  10. package/actions/list-past-meeting-participants/list-past-meeting-participants.mjs +36 -0
  11. package/actions/list-past-webinar-qa/list-past-webinar-qa.mjs +31 -0
  12. package/actions/send-chat-message/send-chat-message.mjs +46 -0
  13. package/actions/update-meeting/update-meeting.mjs +101 -0
  14. package/actions/update-webinar/update-webinar.mjs +101 -0
  15. package/actions/view-user/view-user.mjs +24 -0
  16. package/package.json +19 -16
  17. package/sources/common/common.mjs +25 -0
  18. package/sources/common/constants.mjs +110 -0
  19. package/sources/custom-event/custom-event.mjs +33 -0
  20. package/sources/meeting-created/meeting-created.mjs +55 -0
  21. package/sources/meeting-deleted/meeting-deleted.mjs +38 -0
  22. package/sources/meeting-ended/meeting-ended.mjs +65 -0
  23. package/sources/meeting-started/meeting-started.mjs +59 -0
  24. package/sources/meeting-updated/meeting-updated.mjs +55 -0
  25. package/sources/phone-event/phone-event.mjs +33 -0
  26. package/sources/recording-completed/recording-completed.mjs +129 -0
  27. package/sources/webinar-created/webinar-created.mjs +55 -0
  28. package/sources/webinar-deleted/webinar-deleted.mjs +38 -0
  29. package/sources/webinar-ended/webinar-ended.mjs +60 -0
  30. package/sources/webinar-started/webinar-started.mjs +58 -0
  31. package/sources/webinar-updated/webinar-updated.mjs +55 -0
  32. package/zoom.app.mjs +99 -0
  33. package/sources/custom-event/custom-event.js +0 -91
  34. package/sources/meeting-created/meeting-created.js +0 -30
  35. package/sources/meeting-deleted/meeting-deleted.js +0 -30
  36. package/sources/meeting-ended/meeting-ended.js +0 -26
  37. package/sources/meeting-started/meeting-started.js +0 -27
  38. package/sources/meeting-updated/meeting-updated.js +0 -26
  39. package/sources/recording-completed/recording-completed.js +0 -110
  40. package/sources/webinar-created/webinar-created.js +0 -30
  41. package/sources/webinar-deleted/webinar-deleted.js +0 -30
  42. package/sources/webinar-ended/webinar-ended.js +0 -29
  43. package/sources/webinar-started/webinar-started.js +0 -30
  44. package/sources/webinar-updated/webinar-updated.js +0 -29
  45. package/zoom.app.js +0 -4
package/README.md CHANGED
@@ -72,10 +72,6 @@ Pipedream is currently free, subject to the [limits noted below](https://docs.pi
72
72
 
73
73
  If you exceed any of these limits, please [reach out](https://docs.pipedream.com/support/).
74
74
 
75
- ## Getting Support
76
-
77
- You can get help [on our public Slack](https://pipedream.com/community) or [reach out to our team directly](https://docs.pipedream.com/support/) with any questions or feedback. We'd love to hear from you!
78
-
79
75
  ## Found a Bug? Have a Feature to suggest?
80
76
 
81
77
  Before adding an issue, please search the [existing issues](https://github.com/PipedreamHQ/pipedream/issues) or [reach out to our team](https://docs.pipedream.com/support/) to see if a similar request already exists.
@@ -0,0 +1,143 @@
1
+ // legacy_hash_id: a_zNiweO
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-add-meeting-registrant",
6
+ name: "Add Meeting Registrant",
7
+ description: "Registers a participant for a meeting.",
8
+ version: "0.2.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ meeting_id: {
16
+ type: "string",
17
+ description: "The meeting ID.",
18
+ },
19
+ occurrence_ids: {
20
+ type: "string",
21
+ description: "Occurrence IDs. You can find these with the meeting get API. Multiple values separated by comma.",
22
+ optional: true,
23
+ },
24
+ email: {
25
+ type: "string",
26
+ description: "A valid email address of the registrant.",
27
+ },
28
+ first_name: {
29
+ type: "string",
30
+ description: "Registrant's first name.",
31
+ },
32
+ last_name: {
33
+ type: "string",
34
+ description: "Registrant's last name.",
35
+ },
36
+ address: {
37
+ type: "string",
38
+ description: "Registrant's address.",
39
+ optional: true,
40
+ },
41
+ city: {
42
+ type: "string",
43
+ description: "Registrant's city.",
44
+ optional: true,
45
+ },
46
+ country: {
47
+ type: "string",
48
+ description: "Registrant's country.",
49
+ optional: true,
50
+ },
51
+ zip: {
52
+ type: "string",
53
+ description: "Registrant's Zip/Postal code.",
54
+ optional: true,
55
+ },
56
+ state: {
57
+ type: "string",
58
+ description: "Registrant's State/Province.",
59
+ optional: true,
60
+ },
61
+ phone: {
62
+ type: "string",
63
+ description: "Registrant's Phone number.",
64
+ optional: true,
65
+ },
66
+ industry: {
67
+ type: "string",
68
+ description: "Registrant's industry.",
69
+ optional: true,
70
+ },
71
+ org: {
72
+ type: "string",
73
+ description: "Registrant's Organization.",
74
+ optional: true,
75
+ },
76
+ job_title: {
77
+ type: "string",
78
+ description: "Registrant's job title.",
79
+ optional: true,
80
+ },
81
+ purchasing_time_frame: {
82
+ type: "string",
83
+ description: "This field can be included to gauge interest of webinar attendees towards buying your product or service.",
84
+ optional: true,
85
+ },
86
+ role_in_purchase_process: {
87
+ type: "string",
88
+ description: "Role in Purchase Process.",
89
+ optional: true,
90
+ },
91
+ no_of_employees: {
92
+ type: "string",
93
+ description: "Number of Employees.",
94
+ optional: true,
95
+ },
96
+ comments: {
97
+ type: "string",
98
+ description: "A field that allows registrants to provide any questions or comments that they might have.",
99
+ optional: true,
100
+ },
101
+ custom_questions: {
102
+ type: "any",
103
+ description: "Custom questions.",
104
+ optional: true,
105
+ },
106
+ },
107
+ async run({ $ }) {
108
+ //See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingregistrantcreate
109
+ const config = {
110
+ method: "post",
111
+ url: `https://api.zoom.us/v2/meetings/${this.meeting_id}/registrants`,
112
+ params: {
113
+ occurrence_ids: this.occurrence_ids,
114
+ },
115
+ data: {
116
+ email: this.email,
117
+ first_name: this.first_name,
118
+ last_name: this.last_name,
119
+ address: this.address,
120
+ city: this.city,
121
+ country: this.country,
122
+ zip: this.zip,
123
+ state: this.state,
124
+ phone: this.phone,
125
+ industry: this.industry,
126
+ org: this.org,
127
+ job_title: this.job_title,
128
+ purchasing_time_frame: this.purchasing_time_frame,
129
+ role_in_purchase_process: this.role_in_purchase_process,
130
+ no_of_employees: this.no_of_employees,
131
+ comments: this.comments,
132
+ custom_questions: typeof this.custom_questions == "undefined"
133
+ ? this.custom_questions
134
+ : JSON.parse(this.custom_questions),
135
+ },
136
+ headers: {
137
+ "Authorization": `Bearer ${this.zoom.$auth.oauth_access_token}`,
138
+ "Content-Type": "application/json",
139
+ },
140
+ };
141
+ return await axios($, config);
142
+ },
143
+ };
@@ -0,0 +1,143 @@
1
+ // legacy_hash_id: a_YEiPgP
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-add-webinar-registrant",
6
+ name: "Add Webinar Registrant",
7
+ description: "Registers a participant for a webinar.",
8
+ version: "0.2.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ webinar_id: {
16
+ type: "string",
17
+ description: "The webinar ID.",
18
+ },
19
+ occurrence_ids: {
20
+ type: "string",
21
+ description: "Occurrence IDs. You can find these with the meeting get API. Multiple values separated by comma.",
22
+ optional: true,
23
+ },
24
+ email: {
25
+ type: "string",
26
+ description: "A valid email address of the registrant.",
27
+ },
28
+ first_name: {
29
+ type: "string",
30
+ description: "Registrant's first name.",
31
+ },
32
+ last_name: {
33
+ type: "string",
34
+ description: "Registrant's last name.",
35
+ },
36
+ address: {
37
+ type: "string",
38
+ description: "Registrant's address.",
39
+ optional: true,
40
+ },
41
+ city: {
42
+ type: "string",
43
+ description: "Registrant's city.",
44
+ optional: true,
45
+ },
46
+ country: {
47
+ type: "string",
48
+ description: "Registrant's country.",
49
+ optional: true,
50
+ },
51
+ zip: {
52
+ type: "string",
53
+ description: "Registrant's Zip/Postal code.",
54
+ optional: true,
55
+ },
56
+ state: {
57
+ type: "string",
58
+ description: "Registrant's State/Province.",
59
+ optional: true,
60
+ },
61
+ phone: {
62
+ type: "string",
63
+ description: "Registrant's Phone number.",
64
+ optional: true,
65
+ },
66
+ industry: {
67
+ type: "string",
68
+ description: "Registrant's industry.",
69
+ optional: true,
70
+ },
71
+ org: {
72
+ type: "string",
73
+ description: "Registrant's Organization.",
74
+ optional: true,
75
+ },
76
+ job_title: {
77
+ type: "string",
78
+ description: "Registrant's job title.",
79
+ optional: true,
80
+ },
81
+ purchasing_time_frame: {
82
+ type: "string",
83
+ description: "This field can be included to gauge interest of webinar attendees towards buying your product or service.",
84
+ optional: true,
85
+ },
86
+ role_in_purchase_process: {
87
+ type: "string",
88
+ description: "Role in Purchase Process.",
89
+ optional: true,
90
+ },
91
+ no_of_employees: {
92
+ type: "string",
93
+ description: "Number of Employees.",
94
+ optional: true,
95
+ },
96
+ comments: {
97
+ type: "string",
98
+ description: "A field that allows registrants to provide any questions or comments that they might have.",
99
+ optional: true,
100
+ },
101
+ custom_questions: {
102
+ type: "any",
103
+ description: "Custom questions.",
104
+ optional: true,
105
+ },
106
+ },
107
+ async run({ $ }) {
108
+ //See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarregistrantcreate
109
+ const config = {
110
+ method: "post",
111
+ url: `https://api.zoom.us/v2/webinars/${this.webinar_id}/registrants`,
112
+ params: {
113
+ occurrence_ids: this.occurrence_ids,
114
+ },
115
+ data: {
116
+ email: this.email,
117
+ first_name: this.first_name,
118
+ last_name: this.last_name,
119
+ address: this.address,
120
+ city: this.city,
121
+ country: this.country,
122
+ zip: this.zip,
123
+ state: this.state,
124
+ phone: this.phone,
125
+ industry: this.industry,
126
+ org: this.org,
127
+ job_title: this.job_title,
128
+ purchasing_time_frame: this.purchasing_time_frame,
129
+ role_in_purchase_process: this.role_in_purchase_process,
130
+ no_of_employees: this.no_of_employees,
131
+ comments: this.comments,
132
+ custom_questions: typeof this.custom_questions == "undefined"
133
+ ? this.custom_questions
134
+ : JSON.parse(this.custom_questions),
135
+ },
136
+ headers: {
137
+ "Authorization": `Bearer ${this.zoom.$auth.oauth_access_token}`,
138
+ "Content-Type": "application/json",
139
+ },
140
+ };
141
+ return await axios($, config);
142
+ },
143
+ };
@@ -0,0 +1,96 @@
1
+ // legacy_hash_id: a_l0i2Mn
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-create-meeting",
6
+ name: "Create Meeting",
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.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ topic: {
16
+ type: "string",
17
+ description: "Meeting topic",
18
+ optional: true,
19
+ },
20
+ type: {
21
+ type: "integer",
22
+ description: "Meeting type:\n1 - Instant meeting.\n2 - Scheduled meeting.\n3 - Recurring meeting with no fixed time.\n8 - Recurring meeting with fixed time.",
23
+ optional: true,
24
+ },
25
+ start_time: {
26
+ type: "string",
27
+ description: "Meeting start time. We support two formats for start_time - local time and GMT.\nTo set time as GMT the format should be yyyy-MM-ddTHH:mm:ssZ.\nTo set time using a specific timezone, use yyyy-MM-ddTHH:mm:ss format and specify the timezone ID in the timezone field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\nThe start_time should only be used for scheduled and / or recurring webinars with fixed time.",
28
+ optional: true,
29
+ },
30
+ duration: {
31
+ type: "integer",
32
+ description: "Meeting duration (minutes). Used for scheduled meetings only.",
33
+ optional: true,
34
+ },
35
+ timezone: {
36
+ type: "string",
37
+ description: "Time zone to format start_time. For example, “America/Los_Angeles”. For scheduled meetings only. Please reference our time [zone list](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) for supported time zones and their formats.",
38
+ optional: true,
39
+ },
40
+ password: {
41
+ type: "string",
42
+ description: "Password to join the meeting. Password may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.",
43
+ optional: true,
44
+ },
45
+ agenda: {
46
+ type: "string",
47
+ description: "Meeting description.",
48
+ optional: true,
49
+ },
50
+ tracking_fields: {
51
+ type: "any",
52
+ description: "Tracking fields.",
53
+ optional: true,
54
+ },
55
+ recurrence: {
56
+ type: "object",
57
+ description: "Recurrence object",
58
+ optional: true,
59
+ },
60
+ settings: {
61
+ type: "string",
62
+ description: "Meeting settings.",
63
+ optional: true,
64
+ },
65
+ },
66
+ async run({ $ }) {
67
+ //See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate
68
+ const config = {
69
+ method: "post",
70
+ url: "https://api.zoom.us/v2/users/me/meetings",
71
+ data: {
72
+ topic: this.topic,
73
+ type: this.type,
74
+ start_time: this.start_time,
75
+ duration: this.duration,
76
+ timezone: this.timezone,
77
+ password: this.password,
78
+ agenda: this.agenda,
79
+ tracking_fields: typeof this.tracking_fields == "undefined"
80
+ ? this.tracking_fields
81
+ : JSON.parse(this.tracking_fields),
82
+ recurrence: typeof this.recurrence == "undefined"
83
+ ? this.recurrence
84
+ : JSON.parse(this.recurrence),
85
+ settings: typeof this.settings == "undefined"
86
+ ? this.settings
87
+ : JSON.parse(this.settings),
88
+ },
89
+ headers: {
90
+ "Authorization": `Bearer ${this.zoom.$auth.oauth_access_token}`,
91
+ "Content-Type": "application/json",
92
+ },
93
+ };
94
+ return await axios($, config);
95
+ },
96
+ };
@@ -0,0 +1,48 @@
1
+ // legacy_hash_id: a_poikQ1
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-create-user",
6
+ name: "Create User",
7
+ description: "Creates a new user in your account.",
8
+ version: "0.2.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ action: {
16
+ type: "string",
17
+ description: "Specify how to create the new user: <br>`create` - User will get an email sent from Zoom. There is a confirmation link in this email. The user will then need to use the link to activate their Zoom account. The user can then set or change their password.<br>`autoCreate` - This action is provided for the enterprise customer who has a managed domain. This feature is disabled by default because of the security risk involved in creating a user who does not belong to your domain.<br>`custCreate` - Users created via this option do not have passwords and will not have the ability to log into the Zoom Web Portal or the Zoom Client. To use this option, you must contact the ISV Platform Sales team at isv@zoom.us.<br>`ssoCreate` - This action is provided for the enabled “Pre-provisioning SSO User” option. A user created in this way has no password. If not a basic user, a personal vanity URL using the user name (no domain) of the provisioning email will be generated. If the user name or PMI is invalid or occupied, it will use a random number or random personal vanity URL.",
18
+ options: [
19
+ "create",
20
+ "autoCreate",
21
+ "custCreate",
22
+ "ssoCreate",
23
+ ],
24
+ },
25
+ user_info: {
26
+ type: "object",
27
+ description: "Object with the user information. It has the following properties:\nemail: User email address\ntype: User type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.\nfirst_name: User's first name: cannot contain more than 5 Chinese words.\nlast_name: User's last name: cannot contain more than 5 Chinese words.\npassword: User password. Only used for the \\\"autoCreate\\\" function. The password has to have a minimum of 8 characters and maximum of 32 characters. It must have at least one letter (a, b, c..), at least one number (1, 2, 3...) and include both uppercase and lowercase letters. It should not contain only one identical character repeatedly ('11111111' or 'aaaaaaaa') and it cannot contain consecutive characters ('12345678' or 'abcdefgh').",
28
+ },
29
+ },
30
+ async run({ $ }) {
31
+ //See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate
32
+ const config = {
33
+ method: "post",
34
+ url: "https://api.zoom.us/v2/users",
35
+ data: {
36
+ action: this.action,
37
+ user_info: typeof this.user_info == "undefined"
38
+ ? this.user_info
39
+ : JSON.parse(this.user_info),
40
+ },
41
+ headers: {
42
+ "Authorization": `Bearer ${this.zoom.$auth.oauth_access_token}`,
43
+ "Content-Type": "application/json",
44
+ },
45
+ };
46
+ return await axios($, config);
47
+ },
48
+ };
@@ -0,0 +1,68 @@
1
+ // legacy_hash_id: a_a4iKYo
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-delete-user",
6
+ name: "Delete User",
7
+ description: "Disassociates (unlinks) a user from the associated account or permanently deletes a user.",
8
+ version: "0.2.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ user_id: {
16
+ type: "string",
17
+ description: "The user ID or email address of the user.",
18
+ },
19
+ action: {
20
+ type: "string",
21
+ description: "Delete action options:<br>`disassociate` - Disassociate a user.<br>`delete`- Permanently delete a user.<br>Note: To delete pending user in the account, use `disassociate",
22
+ optional: true,
23
+ options: [
24
+ "disassociate",
25
+ "delete",
26
+ ],
27
+ },
28
+ transfer_email: {
29
+ type: "string",
30
+ description: "Transfer email.",
31
+ optional: true,
32
+ },
33
+ transfer_meeting: {
34
+ type: "boolean",
35
+ description: "Transfer meeting.",
36
+ optional: true,
37
+ },
38
+ transfer_webinar: {
39
+ type: "boolean",
40
+ description: "Transfer webinar.",
41
+ optional: true,
42
+ },
43
+ transfer_recording: {
44
+ type: "boolean",
45
+ description: "Transfer recording.",
46
+ optional: true,
47
+ },
48
+ },
49
+ async run({ $ }) {
50
+ //See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/users/userdelete
51
+ const config = {
52
+ method: "delete",
53
+ url: `https://api.zoom.us/v2/users/${this.user_id}`,
54
+ params: {
55
+ action: this.action,
56
+ transfer_email: this.transfer_email,
57
+ transfer_meeting: this.transfer_meeting,
58
+ transfer_webinar: this.transfer_webinar,
59
+ transfer_recording: this.transfer_recording,
60
+ },
61
+ headers: {
62
+ "Authorization": `Bearer ${this.zoom.$auth.oauth_access_token}`,
63
+ "Content-Type": "application/json",
64
+ },
65
+ };
66
+ return await axios($, config);
67
+ },
68
+ };
@@ -0,0 +1,38 @@
1
+ // legacy_hash_id: a_Xzi12a
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-get-meeting-details",
6
+ name: "Get Meeting Details",
7
+ description: "Retrieves the details of a meeting.",
8
+ version: "0.3.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ meeting_id: {
16
+ type: "integer",
17
+ description: "The meeting ID.",
18
+ },
19
+ occurrence_id: {
20
+ type: "string",
21
+ description: "Meeting occurrence ID.",
22
+ optional: true,
23
+ },
24
+ },
25
+ async run({ $ }) {
26
+ //See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting
27
+ const config = {
28
+ url: `https://api.zoom.us/v2/meetings/${this.meeting_id}`,
29
+ params: {
30
+ occurrence_id: this.occurrence_id,
31
+ },
32
+ headers: {
33
+ Authorization: `Bearer ${this.zoom.$auth.oauth_access_token}`,
34
+ },
35
+ };
36
+ return await axios($, config);
37
+ },
38
+ };
@@ -0,0 +1,38 @@
1
+ // legacy_hash_id: a_WYie0m
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-get-webinar-details",
6
+ name: "Get Webinar Details",
7
+ description: "Gets details of a scheduled webinar.",
8
+ version: "0.2.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ webinar_id: {
16
+ type: "integer",
17
+ description: "The webinar ID.",
18
+ },
19
+ occurrence_id: {
20
+ type: "string",
21
+ description: "Unique Identifier that identifies an occurrence of a recurring webinar. Recurring webinars can have a maximum of 50 occurrences.",
22
+ optional: true,
23
+ },
24
+ },
25
+ async run({ $ }) {
26
+ //See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinar
27
+ const config = {
28
+ url: `https://api.zoom.us/v2/webinars/${this.webinar_id}`,
29
+ params: {
30
+ occurrence_id: this.occurrence_id,
31
+ },
32
+ headers: {
33
+ Authorization: `Bearer ${this.zoom.$auth.oauth_access_token}`,
34
+ },
35
+ };
36
+ return await axios($, config);
37
+ },
38
+ };
@@ -0,0 +1,43 @@
1
+ // legacy_hash_id: a_vgi47v
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-list-channels",
6
+ name: "List Channels",
7
+ description: "List a user's chat channels.",
8
+ version: "0.1.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ page_size: {
16
+ type: "integer",
17
+ description: "The number of records returned from a single API call.",
18
+ optional: true,
19
+ },
20
+ next_page_token: {
21
+ type: "string",
22
+ description: "The next page token is used to paginate through large result sets. The expiration period for this token is 15 minutes.",
23
+ optional: true,
24
+ },
25
+ },
26
+ async run({ $ }) {
27
+ // See the API docs here: https://marketplace.zoom.us/docs/api-reference/zoom-api/chat-channels/getchannels
28
+
29
+ const config = {
30
+ method: "get",
31
+ url: "https://api.zoom.us/v2/chat/users/me/channels",
32
+ headers: {
33
+ Authorization: `Bearer ${this.zoom.$auth.oauth_access_token}`,
34
+ },
35
+ params: {
36
+ page_size: this.page_size,
37
+ next_page_token: this.next_page_token,
38
+ },
39
+ };
40
+
41
+ return await axios($, config);
42
+ },
43
+ };
@@ -0,0 +1,36 @@
1
+ // legacy_hash_id: a_YEik5g
2
+ import { axios } from "@pipedream/platform";
3
+
4
+ export default {
5
+ key: "zoom-list-past-meeting-participants",
6
+ name: "List Past Meeting Participants",
7
+ description: "Retrieve information on participants from a past meeting.",
8
+ version: "0.1.1",
9
+ type: "action",
10
+ props: {
11
+ zoom: {
12
+ type: "app",
13
+ app: "zoom",
14
+ },
15
+ meeting_id: {
16
+ type: "string",
17
+ },
18
+ },
19
+ async run({ $ }) {
20
+ const config = {
21
+ url: `https://api.zoom.us/v2/past_meetings/${this.meeting_id}/participants`,
22
+ headers: {
23
+ Authorization: `Bearer ${this.zoom.$auth.oauth_access_token}`,
24
+ },
25
+ };
26
+
27
+ const results = await axios($, config);
28
+
29
+ return results.participants.filter((element, index) => {
30
+ const _element = JSON.stringify(element);
31
+ return index === results.participants.findIndex((obj) => {
32
+ return JSON.stringify(obj) === _element;
33
+ });
34
+ });
35
+ },
36
+ };