[LFXV2-884] Add meeting invite response event handling for v2 indexing#18
[LFXV2-884] Add meeting invite response event handling for v2 indexing#18
Conversation
- Add handler for itx-zoom-meetings-invite-responses-v2 events - Create inviteResponseInput struct to model invite response data - Implement convertMapToInputInviteResponse for data conversion - Add validation to skip MAILER-DAEMON responses - Verify parent meeting exists before indexing invite response - Send indexer messages to lfx.index.v1_meeting_rsvp subject - Track processed invite responses in mappings KV store Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <andrest2455@gmail.com>
Signed-off-by: Andres Tobon <andrest2455@gmail.com>
8ea4dc0 to
a954000
Compare
There was a problem hiding this comment.
Pull request overview
This PR adds support for syncing Zoom meeting invite response (RSVP) data from the v1 system to the v2 indexing system. The implementation follows the established patterns for other meeting-related entities like registrants and mappings, ensuring consistency with the existing codebase.
- Created the
inviteResponseInputmodel with comprehensive field definitions for RSVP data - Added event handler for
itx-zoom-meetings-invite-responses-v2to process invite response updates - Implemented validation logic to ensure invite responses are only indexed when the parent meeting exists in the mappings
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| meltano/README.md | Fixed trailing slash in tap-postgres documentation URL |
| cmd/lfx-v1-sync-helper/models_meetings.go | Added inviteResponseInput struct with all required fields for modeling invite response data |
| cmd/lfx-v1-sync-helper/handlers_meetings.go | Implemented complete handler logic including conversion, validation, and indexing functions for invite responses |
| cmd/lfx-v1-sync-helper/handlers.go | Added case handler for itx-zoom-meetings-invite-responses-v2 events |
| charts/lfx-v1-sync-helper/Chart.yaml | Bumped chart version to 0.3.6 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| return | ||
| } | ||
|
|
||
| if inviteResponseID != "" { |
There was a problem hiding this comment.
this if statement is unnecessary; not only did we test for an empty value on line 663, but we already used this value to create the mappingKey that will be used for the Put call, and this value is otherwise only used for the log line. The validation happened where it should—before we interpolated the mapping key.
- Add RSVPResponseType enum (accepted, maybe, declined) for v2 system - Add RSVPScope enum (single, all, this_and_following) for v2 system - Transform v1 response types (ACCEPTED, TENTATIVE, DECLINED) to v2 format - Calculate RSVP scope based on occurrence_id and is_response_recurring fields - Remove IsResponseRecurring field in favor of Scope field - Remove unnecessary inviteResponseID empty check before storing mapping - Improve log consistency by using invite_response_id instead of id Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <andrest2455@gmail.com>
…elper into andrest50/v1-meeting-rsvp
Signed-off-by: Andres Tobon <andrest2455@gmail.com>
- Add Username field to inviteResponseInput struct for v2 system - Implement username lookup using UserID (v1 platform ID) via lookupV1User - Map username to Auth0 "sub" format using mapUsernameToAuthSub helper - Add debug logging for successful lookups and warning for failures - Follows same pattern as invitee and attendee username resolution This allows the v2 system to associate RSVP responses with the correct user accounts. Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <andrest2455@gmail.com>
|
Oh, can you also add in |
This commit standardizes logging patterns across all meeting-related handlers to improve debugging and reduce log noise: 1. Use function-scoped loggers with contextual fields: - Create `funcLogger` at function start with key information - Progressively add context (meeting_id, registrant_id, etc.) - Avoid repeating fields in every log call 2. Remove redundant logging: - Remove duplicate error logs before returning formatted errors - Remove success confirmation logs from utility functions - Keep important high-level success/error logs in handlers 3. Improve error message context: - Include relevant IDs in error messages for better debugging - Use consistent error message format across handlers - Make messages more descriptive about what failed 4. Affected handlers: - handleZoomMeetingUpdate - handleZoomMeetingMappingUpdate - handleZoomMeetingRegistrantUpdate - handleZoomMeetingInviteResponseUpdate - handleZoomPastMeetingUpdate - handleZoomPastMeetingMappingUpdate - handleZoomPastMeetingInviteeUpdate - handleZoomPastMeetingAttendeeUpdate - handleZoomPastMeetingRecordingUpdate - handleZoomPastMeetingSummaryUpdate Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <andrest2455@gmail.com>
This commit adds the itx-zoom-meetings-invite-responses-v2 table to the list of DynamoDB tables replicated by meltano from v1 to NATS KV. This enables the v1-sync-helper to process meeting invite RSVP data and index it into the v2 system alongside the existing meetings, registrants, past meetings, and other meeting-related data. The invite responses track when registrants accept, decline, or mark as maybe for meeting invitations, including the scope of their response (single occurrence, all occurrences, or this and following occurrences). Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <andrest2455@gmail.com>
Fixed 9 revive lint errors by removing unused context.Context parameters from functions that don't use them: - sendAccessMessage - convertMapToInputMeetingMapping - convertMapToInputRegistrant - convertMapToInputInviteResponse - convertMapToInputPastMeetingMapping - convertMapToInputPastMeetingInvitee - convertInviteeToV2Participant - convertMapToInputPastMeetingAttendee - convertAttendeeToV2Participant - convertMapToInputPastMeetingRecording - convertMapToInputPastMeetingSummary Updated all call sites to match new function signatures and changed logging calls in converter functions to use Warn() instead of WarnContext() where context is no longer available. Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <andrest2455@gmail.com>
Summary
itx-zoom-meetings-invite-responses-v2events to sync meeting RSVP data to v2 systeminviteResponseInputstruct to model invite response data with all required fieldsTicket
LFXV2-884
Changes
itx-zoom-meetings-invite-responses-v2eventshandleZoomMeetingInviteResponseUpdatefunction to process invite response eventsconvertMapToInputInviteResponsefor data transformationgetInviteResponseTagshelper for generating index tagslfx.index.v1_meeting_rsvpsubjectinviteResponseInputstruct with complete field definitions🤖 Generated with Claude Code