-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Add Webinar Filter to Zoom Admin Webinar Ended Source #18751
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Webinar Filter to Zoom Admin Webinar Ended Source #18751
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified. |
WalkthroughBumps package version and updates version metadata across many Zoom Admin source modules. The webinar-ended source also adds an optional webinar prop with async options, introduces isRelevant and emitEvent helpers, and refactors run() to gate emissions through relevance checks. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Z as Zoom
participant WH as Zoom Webhook
participant S as Source: webinar-ended
participant D as Downstream (emit)
Z->>WH: webinar.ended webhook
WH->>S: run(event)
rect rgba(200,220,255,0.25)
S->>S: isRelevant(object)? (checks selected webinar if set)
alt relevant
S->>S: emitEvent(payload, object)
S-->>D: $emit("webinar.ended", enrichedPayload)
Note right of S: emission includes mapped metadata
else not relevant
S-->>WH: no-op / return
end
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (24)
components/zoom_admin/package.json
(1 hunks)components/zoom_admin/sources/account-created/account-created.mjs
(1 hunks)components/zoom_admin/sources/account-settings-updated/account-settings-updated.mjs
(1 hunks)components/zoom_admin/sources/account-updated/account-updated.mjs
(1 hunks)components/zoom_admin/sources/custom-events/custom-events.mjs
(1 hunks)components/zoom_admin/sources/meeting-created/meeting-created.mjs
(1 hunks)components/zoom_admin/sources/meeting-deleted/meeting-deleted.mjs
(1 hunks)components/zoom_admin/sources/meeting-ended/meeting-ended.mjs
(1 hunks)components/zoom_admin/sources/meeting-started/meeting-started.mjs
(1 hunks)components/zoom_admin/sources/meeting-updated/meeting-updated.mjs
(1 hunks)components/zoom_admin/sources/new-recording-transcript-completed/new-recording-transcript-completed.mjs
(1 hunks)components/zoom_admin/sources/recording-completed/recording-completed.mjs
(1 hunks)components/zoom_admin/sources/user-activated/user-activated.mjs
(1 hunks)components/zoom_admin/sources/user-created/user-created.mjs
(1 hunks)components/zoom_admin/sources/user-deactivated/user-deactivated.mjs
(1 hunks)components/zoom_admin/sources/user-deleted/user-deleted.mjs
(1 hunks)components/zoom_admin/sources/user-invitation-accepted/user-invitation-accepted.mjs
(1 hunks)components/zoom_admin/sources/user-updated/user-updated.mjs
(1 hunks)components/zoom_admin/sources/webinar-changes-to-panelists/webinar-changes-to-panelists.mjs
(1 hunks)components/zoom_admin/sources/webinar-created/webinar-created.mjs
(1 hunks)components/zoom_admin/sources/webinar-deleted/webinar-deleted.mjs
(1 hunks)components/zoom_admin/sources/webinar-ended/webinar-ended.mjs
(2 hunks)components/zoom_admin/sources/webinar-started/webinar-started.mjs
(1 hunks)components/zoom_admin/sources/webinar-updated/webinar-updated.mjs
(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
components/zoom_admin/sources/webinar-ended/webinar-ended.mjs (1)
components/zoom_admin/sources/webinar-changes-to-panelists/webinar-changes-to-panelists.mjs (1)
nextPageToken
(62-62)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: pnpm publish
- GitHub Check: Verify TypeScript components
- GitHub Check: Publish TypeScript components
- GitHub Check: Lint Code Base
🔇 Additional comments (26)
components/zoom_admin/package.json (1)
3-3
: LGTM!The minor version bump from 0.11.0 to 0.12.0 appropriately reflects the addition of new functionality (webinar filter) while maintaining backward compatibility.
components/zoom_admin/sources/custom-events/custom-events.mjs (1)
8-8
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/account-updated/account-updated.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated package release.
components/zoom_admin/sources/webinar-changes-to-panelists/webinar-changes-to-panelists.mjs (1)
11-11
: LGTM!Version bump maintains consistency with the package-wide release.
components/zoom_admin/sources/user-activated/user-activated.mjs (1)
8-8
: LGTM!Version bump is appropriate for the coordinated package release.
components/zoom_admin/sources/recording-completed/recording-completed.mjs (1)
9-9
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/webinar-started/webinar-started.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated package release.
components/zoom_admin/sources/meeting-started/meeting-started.mjs (1)
9-9
: LGTM!Version bump maintains consistency with the package-wide release.
components/zoom_admin/sources/user-deleted/user-deleted.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated update across Zoom Admin sources.
components/zoom_admin/sources/account-settings-updated/account-settings-updated.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated update across Zoom Admin sources.
components/zoom_admin/sources/meeting-updated/meeting-updated.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated update across Zoom Admin sources.
components/zoom_admin/sources/user-invitation-accepted/user-invitation-accepted.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated update across Zoom Admin sources.
components/zoom_admin/sources/user-updated/user-updated.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated update across Zoom Admin sources.
components/zoom_admin/sources/meeting-deleted/meeting-deleted.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated update across Zoom Admin sources.
components/zoom_admin/sources/user-deactivated/user-deactivated.mjs (1)
8-8
: LGTM!Version bump is consistent with the coordinated update across Zoom Admin sources.
components/zoom_admin/sources/account-created/account-created.mjs (1)
8-8
: Inconsistent version bumps across Zoom Admin sources
Most sources in this PR are updated to 0.1.7, but:
- account-created & recording-completed → 0.1.8
- webinar-started → 0.1.9
- new-recording-transcript-completed remains at 0.0.2
Confirm these version jumps are intentional or align all sources to the correct version.
components/zoom_admin/sources/webinar-deleted/webinar-deleted.mjs (1)
8-8
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/webinar-updated/webinar-updated.mjs (1)
9-9
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/webinar-created/webinar-created.mjs (1)
9-9
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/user-created/user-created.mjs (1)
8-8
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/new-recording-transcript-completed/new-recording-transcript-completed.mjs (1)
7-7
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/meeting-created/meeting-created.mjs (1)
8-8
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/meeting-ended/meeting-ended.mjs (1)
8-8
: LGTM!Version bump aligns with the package-wide version update.
components/zoom_admin/sources/webinar-ended/webinar-ended.mjs (3)
21-54
: LGTM!The new webinar filter prop is well-implemented with:
- Clear documentation explaining behavior for recurring webinars
- Proper pagination support using nextPageToken
- Correct handling of empty results
- User-friendly label/value mapping
The optional nature preserves backward compatibility.
57-68
: LGTM!The
isRelevant()
filter method correctly:
- Preserves existing behavior when no filter is set
- Matches webinar ID as documented
- Provides debug logging for filtered events
The string comparison at line 62 is appropriate since the webinar prop returns a string value.
83-92
: LGTM!The refactored
run()
method follows best practices:
- Clean separation of concerns (filtering via
isRelevant()
, emission viaemitEvent()
)- Efficient early return when events don't match the filter
- Aligns with Pipedream source conventions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Ready for QA!
Hello everyone, I have tested this PR and there're some test cases failed or needed improvement. Please check the test report below for more information |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi everyone, all test cases are passed! Ready for release! |
Added optional webinar filtering to the
zoom_admin-webinar-ended
event source, allowing users to monitor specific webinars instead of all webinars in their account.Changes
New Features:
webinar
prop with dynamic dropdown to select specific webinarsCode Improvements:
isRelevant()
method for clean event filtering logicemitEvent()
helper method for better code organizationrun()
method following Pipedream source conventionsBehavior:
object.id
) to match the selected webinarWhy
Users often want to trigger workflows for specific webinars rather than processing events from all webinars. This change enables targeted event monitoring without creating noise from unrelated
webinars.
Summary by CodeRabbit
New Features
Chores