-
Notifications
You must be signed in to change notification settings - Fork 11.6k
chore: Integrate edit location booking audit #26569
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
Conversation
Co-Authored-By: hariom@cal.com <hariombalhara@gmail.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: hariom@cal.com <hariombalhara@gmail.com>
- Changed the variable name from `bookingLocation` to `bookingFieldsLocation` in the BookingLocationService for clarity. - Introduced a new `ValidActionSource` type to ensure only valid action sources are used in the booking audit process, removing the `UNKNOWN` option from the action source schema. - Refactored the `editLocationHandler` to utilize the new `ValidActionSource` type and removed the handling of `UNKNOWN` action sources. - Cleaned up formatting and improved readability in several files related to booking cancellation and location editing.
…ect import Co-Authored-By: hariom@cal.com <hariombalhara@gmail.com>
…nager.devin.ai/proxy/github.com/calcom/cal.com into devin/edit-location-audit-1767854684
f0dcf26 to
8b617f9
Compare
Instead of adding individual providers (Logger, TaskerService, HashedLinkService, BookingAuditProducerService, BookingEventHandlerService) to each bookings module, create a dedicated BookingEventHandlerModule that can be imported where needed. This reduces code duplication and makes dependency management cleaner. Co-Authored-By: hariom@cal.com <hariombalhara@gmail.com>
…com/cal.com into devin/edit-location-audit-1767854684
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.
No issues found across 7 files
E2E results are ready! |
joeauyeung
left a 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.
Tested and it's working as expected. Code also LGTM.
volnei
left a 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.
LGTM!
Merge activity
|
What does this PR do?
Integrates booking audit logging for the edit location functionality, following the pattern established in PR #26046 (booking creation/rescheduling audit).
This PR adds audit logging when a booking's location is changed through:
packages/trpc/server/routers/viewer/bookings/editLocation.handler.tsapps/api/v2/src/ee/bookings/2024-08-13/services/booking-location.service.tsChanges:
actionSourceas a required parameter toeditLocationHandler(no fallback)userUuidparameter (defaults to logged-in user's uuid)ValidActionSourcetype that excludes "UNKNOWN" for client-facing APIsBookingEventHandlerService.onLocationChanged()after successful location updateactionSource: "WEBAPP", API v2 usesactionSource: "API_V2"actionSource: "WEBAPP"actionSource: "WEBAPP"BookingEventHandlerServiceinjected via constructorUpdates since last revision:
BookingEventHandlerModule(apps/api/v2/src/lib/modules/booking-event-handler.module.ts) to encapsulateBookingEventHandlerServiceand its dependencies (Logger, TaskerService, HashedLinkService, BookingAuditProducerService)BookingEventHandlerModuleinstead of listing individual providersMandatory Tasks (DO NOT REMOVE)
How should this be tested?
bookingUidactor(user who made the change)source("WEBAPP" or "API_V2")auditData.location.oldandauditData.location.newvaluesChecklist
Human Review Checklist
editLocationHandlerpassactionSource(router updated, test updated)organizationIdderivation is correct in both handlers (tRPC usesbooking.user?.profiles?.[0]?.organizationId, API v2 usesexistingBookingHost.organizationId)editLocationHandler- this is correctBookingEventHandlerModuleproperly exportsBookingEventHandlerServiceand is imported in both bookings modulesupdateBookingLocationInDbreturn value ({ updatedLocation }) is destructured and used correctly for audit databookingLocationfor auditnewvalue, while tRPC usesupdatedLocationfrom DB updateLink to Devin run: https://app.devin.ai/sessions/fd1d439779674050a26ea3fa7d799943
Requested by: @hariombalhara