diff --git a/components/zoom_admin/actions/get-meeting-recordings/get-meeting-recordings.mjs b/components/zoom_admin/actions/get-meeting-recordings/get-meeting-recordings.mjs new file mode 100644 index 0000000000000..952ee3cfdc01c --- /dev/null +++ b/components/zoom_admin/actions/get-meeting-recordings/get-meeting-recordings.mjs @@ -0,0 +1,41 @@ +import get from "lodash/get.js"; +import { paginate } from "../../common/pagination.mjs"; +import zoomAdmin from "../../zoom_admin.app.mjs"; + +export default { + name: "Get meeting recordings", + description: + "Get all recordings of a meeting. [See the docs here](https://developers.zoom.us/docs/api/meetings/#tag/cloud-recording/GET/meetings/{meetingId}/recordings)", + key: "zoom_admin-get-meeting-recordings", + version: "0.0.1", + type: "action", + props: { + zoomAdmin, + meeting: { + propDefinition: [ + zoomAdmin, + "meeting", + ], + }, + downloadAccessToken: { + type: "boolean", + label: "Download Access Token", + description: "Whether to include the download access token in the response", + optional: true, + }, + }, + async run({ $ }) { + const res = await paginate( + this.zoomAdmin.listMeetingRecordings, + "recordings", + get(this.meeting, "value", this.meeting), + { + download_access_token: this.downloadAccessToken, + }, + ); + + $.export("$summary", `"${get(this.meeting, "label", this.meeting)}" meeting recordings successfully fetched`); + + return res; + }, +}; diff --git a/components/zoom_admin/actions/list-past-meeting-participants/list-past-meeting-participants.mjs b/components/zoom_admin/actions/list-past-meeting-participants/list-past-meeting-participants.mjs new file mode 100644 index 0000000000000..5332b88536b2f --- /dev/null +++ b/components/zoom_admin/actions/list-past-meeting-participants/list-past-meeting-participants.mjs @@ -0,0 +1,32 @@ +import zoomAdmin from "../../zoom_admin.app.mjs"; +import get from "lodash/get.js"; +import { paginate } from "../../common/pagination.mjs"; + +export default { + name: "List past meeting participants", + description: + "List all participants of a past meeting. [See the docs here](https://developers.zoom.us/docs/api/meetings/#tag/meetings/GET/past_meetings/{meetingId}/participants)", + key: "zoom_admin-list-past-meeting-participants", + version: "0.0.1", + type: "action", + props: { + zoomAdmin, + meeting: { + propDefinition: [ + zoomAdmin, + "meeting", + ], + }, + }, + async run({ $ }) { + const res = await paginate( + this.zoomAdmin.listPastMeetingParticipants, + "participants", + get(this.meeting, "value", this.meeting), + ); + + $.export("$summary", `"${get(this.meeting, "label", this.meeting)}" past meeting participants successfully fetched`); + + return res; + }, +}; diff --git a/components/zoom_admin/package.json b/components/zoom_admin/package.json index be3ca7cb25b82..00b2120ac5c6d 100644 --- a/components/zoom_admin/package.json +++ b/components/zoom_admin/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/zoom_admin", - "version": "0.7.3", + "version": "0.8.0", "description": "Pipedream Zoom_admin Components", "main": "zoom_admin.app.mjs", "keywords": [ diff --git a/components/zoom_admin/zoom_admin.app.mjs b/components/zoom_admin/zoom_admin.app.mjs index 6aef5aeac4c63..e183d3c5a631b 100644 --- a/components/zoom_admin/zoom_admin.app.mjs +++ b/components/zoom_admin/zoom_admin.app.mjs @@ -391,5 +391,26 @@ export default { }); return data; }, + async listPastMeetingParticipants(meetingId, nextPageToken) { + const { data } = await this._makeRequest({ + path: `/past_meetings/${meetingId}/participants`, + params: { + page_size: 100, + next_page_token: nextPageToken, + }, + }); + return data; + }, + async listMeetingRecordings(meetingId, params, nextPageToken) { + const { data } = await this._makeRequest({ + path: `/meetings/${meetingId}/recordings`, + params: { + page_size: 100, + next_page_token: nextPageToken, + ...params, + }, + }); + return data; + }, }, };