-
Notifications
You must be signed in to change notification settings - Fork 5.5k
12462 trigger cliniko new appointment updated webhook #16185
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
12462 trigger cliniko new appointment updated webhook #16185
Conversation
Sources - New Appointment Updated
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 3 Skipped Deployments
|
WalkthroughThis PR updates several Cliniko components. It bumps version numbers in both the patient action module and package metadata. A new method Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant ClinikoApp
participant API
Client->>ClinikoApp: Call listAppointments(args)
ClinikoApp->>ClinikoApp: Prepare request with path "/appointments"
ClinikoApp->>API: makeRequest({ path: "/appointments", ...args })
API-->>ClinikoApp: Return appointment data
ClinikoApp-->>Client: Send returned data
sequenceDiagram
participant Polling
participant NewAppointmentModule
participant ClinikoAPI
participant EventEmitter
Polling->>NewAppointmentModule: Invoke getResourcesFn() (list appointments)
NewAppointmentModule->>ClinikoAPI: Request updated appointments
ClinikoAPI-->>NewAppointmentModule: Return appointment data
NewAppointmentModule->>NewAppointmentModule: Process data via generateMeta()
NewAppointmentModule->>EventEmitter: Emit test event with sampleEmit()
Assessment against linked issues
Suggested reviewers
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
components/cliniko/sources/new-appointment-updated/new-appointment-updated.mjsOops! Something went wrong! :( ESLint: 8.57.1 Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs 📜 Recent review detailsConfiguration used: CodeRabbit UI ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms (4)
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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: 0
🧹 Nitpick comments (1)
components/cliniko/actions/get-patient/get-patient.mjs (1)
44-44: Fix typo in success message.There's a typo in the success message: "Suceesfully" should be "Successfully".
- $.export("$summary", `Suceesfully retrieved patient with ID: \`${response.id}\``); + $.export("$summary", `Successfully retrieved patient with ID: \`${response.id}\``);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (8)
components/cliniko/actions/get-patient/get-patient.mjs(1 hunks)components/cliniko/cliniko.app.mjs(1 hunks)components/cliniko/package.json(1 hunks)components/cliniko/sources/common/polling.mjs(1 hunks)components/cliniko/sources/new-appointment-updated/new-appointment-updated.mjs(1 hunks)components/cliniko/sources/new-appointment-updated/test-event.mjs(1 hunks)components/cliniko/sources/new-booking-created/new-booking-created.mjs(1 hunks)components/cliniko/sources/new-contact-created/new-contact-created.mjs(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: pnpm publish
🔇 Additional comments (13)
components/cliniko/package.json (1)
3-3: Version bump from 0.1.0 to 0.2.0 looks appropriate.The minor version increment follows semantic versioning principles and appears suitable for the addition of new functionality (new appointment-related features) that would be introduced in this PR.
components/cliniko/actions/get-patient/get-patient.mjs (1)
7-7: Version bump from 0.1.0 to 0.1.1 is appropriate.The patch version increment follows semantic versioning principles and is suitable since no functionality changes were made to this component.
components/cliniko/cliniko.app.mjs (1)
105-110: New listAppointments method follows consistent pattern.The implementation matches the pattern of other listing methods in the file (listPatients, listContacts, listBookings) which is good for code consistency.
components/cliniko/sources/common/polling.mjs (2)
31-33: New getSort method provides good extensibility.Adding this method allows child classes to override the default sort behavior, which is good for extensibility. This is likely used by the appointment updated webhook functionality referenced in the PR title.
39-39: Using the getSort method instead of hardcoded sorting.Great refactoring to use the new getSort() method instead of hardcoding the sort parameter. This makes the code more maintainable and allows for customization in derived classes.
components/cliniko/sources/new-booking-created/new-booking-created.mjs (2)
8-8: Description updated for clarity.The documentation link has been removed from the description, simplifying it to a clear statement of functionality.
10-10: Version bump to 0.0.2.The version increment follows semantic versioning principles, indicating minor updates without breaking changes.
components/cliniko/sources/new-contact-created/new-contact-created.mjs (2)
8-8: Description updated for clarity.The documentation link has been removed from the description, simplifying it to a clear statement of functionality.
10-10: Version bump to 0.0.2.The version increment follows semantic versioning principles, indicating minor updates without breaking changes.
components/cliniko/sources/new-appointment-updated/test-event.mjs (1)
1-78: Well-structured test event sample.This new test event file provides a comprehensive sample of an appointment object from the Cliniko API, including all necessary fields and relationships. The structure is consistent with other test events in the codebase.
components/cliniko/sources/new-appointment-updated/new-appointment-updated.mjs (3)
1-33: Well-implemented appointment update trigger.The source is well-structured following the established patterns in the codebase. Good implementation details:
- The
generateMetamethod includes both the appointment ID and update timestamp in the deduplication ID, correctly handling multiple updates to the same appointment- The
getSort()method sorts byupdated_at:desc, ensuring the most recent updates are processed first- Version starts at 0.0.2 to maintain consistency with other updated components
20-26: Unique ID generation for appointment updates.The combination of
resource.idandresource.updated_atin the ID field creates a unique identifier for each update to an appointment, allowing the system to detect and process multiple updates to the same appointment as separate events.
27-29: Efficient sorting strategy.Sorting by
updated_at:descensures that the most recently updated appointments are processed first, which is optimal for a trigger that monitors updates.
components/cliniko/sources/new-appointment-updated/new-appointment-updated.mjs
Outdated
Show resolved
Hide resolved
michelle0927
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!
Resolves #12462
Summary by CodeRabbit
New Features
Chores