Skip to content

Conversation

@jcortes
Copy link
Collaborator

@jcortes jcortes commented Nov 14, 2025

WHY

Resolves #18951

Summary by CodeRabbit

  • New Features
    • Retrieve Balance Sheet reports from QuickBooks Online with support for customer/vendor/item/class/department filters, adjustable date ranges, accounting method, and formatting options.
    • Retrieve Cash Flow reports from QuickBooks Online with support for customer/vendor/item/class/department filters, adjustable date ranges, sort and summarization options.

@jcortes jcortes self-assigned this Nov 14, 2025
@vercel
Copy link

vercel bot commented Nov 14, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
pipedream-docs Ignored Ignored Nov 14, 2025 9:47pm
pipedream-docs-redirect-do-not-edit Ignored Ignored Nov 14, 2025 9:47pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 14, 2025

Walkthrough

Adds two new QuickBooks report actions (Balance Sheet, Cash Flow), two small utility helpers, new QuickBooks client report methods, and multiple version bumps across existing QuickBooks actions and sources. No behavioral changes to preexisting action logic.

Changes

Cohort / File(s) Summary
New QuickBooks Report Actions
components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs, components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs
New action modules that accept report filters and options, build params (converting arrays/booleans to strings), call the QuickBooks client (getBalanceSheetReport / getCashFlowReport), export a success summary, and return the API response.
Utility Helper Functions
components/quickbooks/common/utils.mjs
Added commaSeparateArray(arr) and booleanToString(bool) to convert array and boolean inputs into API-ready string values.
API Client Methods
components/quickbooks/quickbooks.app.mjs
Added getBalanceSheetReport(opts = {}) and getCashFlowReport(opts = {}) methods that call the QuickBooks reports endpoints (company/{companyId}/reports/BalanceSheet and /reports/CashFlow).
Version bumps (actions & sources)
components/quickbooks/actions/... (many files), components/quickbooks/sources/... (many files), components/quickbooks/package.json
Incremented version fields across numerous action and source modules and bumped package version from 0.7.1 to 0.8.0. No functional changes in those files beyond metadata updates.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Action as Report Action
    participant Utils as utils.mjs
    participant Client as quickbooks.app
    participant QBO as QuickBooks Online

    User->>Action: invoke action with props (filters, dates, flags)
    Action->>Utils: commaSeparateArray / booleanToString
    Utils-->>Action: transformed params
    Action->>Client: getBalanceSheetReport(params) or getCashFlowReport(params)
    Client->>QBO: GET/POST company/{companyId}/reports/BalanceSheet or /reports/CashFlow
    QBO-->>Client: report payload
    Client-->>Action: return data
    Action->>Action: export summary
    Action-->>User: return report response
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–30 minutes

  • Review mapping between action props and QuickBooks API parameter names (both new actions).
  • Verify utils handle empty/undefined inputs safely (empty arrays, null/undefined booleans).
  • Ensure new client methods construct requests consistent with existing request patterns and include required query/body fields.
  • Spot-check version bumps for accidental logic changes (minor risk across many files).

Possibly related PRs

Suggested labels

enhancement

Suggested reviewers

  • michelle0927
  • luancazarine

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The PR includes numerous version bumps across existing actions and sources beyond the two new report features requested. These version updates appear to be maintenance-related rather than tied to the feature request scope. Consider isolating version bumps into a separate maintenance PR, or clarify in the description whether version updates are intentional and related to the new feature release.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately describes the main objective: adding Statement of Cash Flows and Balance Sheet reports to the QuickBooks component. The title is concise, clear, and directly reflects the primary change.
Description check ✅ Passed The PR description minimally follows the template with only 'Resolves #18951' under the WHY section. While brief, it provides the essential context by referencing the linked issue.
Linked Issues check ✅ Passed The PR successfully implements both required features: adds getCashFlowReport and getBalanceSheetReport methods to the QuickBooks app client, creates corresponding action modules for both reports with comprehensive prop schemas, and includes supporting utility functions.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch quickbooks-new-components

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d09ddfe and f73f026.

📒 Files selected for processing (53)
  • components/quickbooks/actions/create-ap-aging-report/create-ap-aging-report.mjs (1 hunks)
  • components/quickbooks/actions/create-bill/create-bill.mjs (1 hunks)
  • components/quickbooks/actions/create-customer/create-customer.mjs (1 hunks)
  • components/quickbooks/actions/create-estimate/create-estimate.mjs (1 hunks)
  • components/quickbooks/actions/create-invoice/create-invoice.mjs (1 hunks)
  • components/quickbooks/actions/create-payment/create-payment.mjs (1 hunks)
  • components/quickbooks/actions/create-pl-report/create-pl-report.mjs (1 hunks)
  • components/quickbooks/actions/create-purchase-order/create-purchase-order.mjs (1 hunks)
  • components/quickbooks/actions/create-purchase/create-purchase.mjs (1 hunks)
  • components/quickbooks/actions/create-sales-receipt/create-sales-receipt.mjs (1 hunks)
  • components/quickbooks/actions/delete-purchase/delete-purchase.mjs (1 hunks)
  • components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs (1 hunks)
  • components/quickbooks/actions/get-bill/get-bill.mjs (1 hunks)
  • components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs (1 hunks)
  • components/quickbooks/actions/get-customer/get-customer.mjs (1 hunks)
  • components/quickbooks/actions/get-invoice/get-invoice.mjs (1 hunks)
  • components/quickbooks/actions/get-my-company/get-my-company.mjs (1 hunks)
  • components/quickbooks/actions/get-payment/get-payment.mjs (1 hunks)
  • components/quickbooks/actions/get-purchase-order/get-purchase-order.mjs (1 hunks)
  • components/quickbooks/actions/get-purchase/get-purchase.mjs (1 hunks)
  • components/quickbooks/actions/get-sales-receipt/get-sales-receipt.mjs (1 hunks)
  • components/quickbooks/actions/get-time-activity/get-time-activity.mjs (1 hunks)
  • components/quickbooks/actions/search-accounts/search-accounts.mjs (1 hunks)
  • components/quickbooks/actions/search-customers/search-customers.mjs (1 hunks)
  • components/quickbooks/actions/search-invoices/search-invoices.mjs (1 hunks)
  • components/quickbooks/actions/search-items/search-items.mjs (1 hunks)
  • components/quickbooks/actions/search-products/search-products.mjs (1 hunks)
  • components/quickbooks/actions/search-purchases/search-purchases.mjs (1 hunks)
  • components/quickbooks/actions/search-query/search-query.mjs (1 hunks)
  • components/quickbooks/actions/search-services/search-services.mjs (1 hunks)
  • components/quickbooks/actions/search-time-activities/search-time-activities.mjs (1 hunks)
  • components/quickbooks/actions/search-vendors/search-vendors.mjs (1 hunks)
  • components/quickbooks/actions/send-estimate/send-estimate.mjs (1 hunks)
  • components/quickbooks/actions/send-invoice/send-invoice.mjs (1 hunks)
  • components/quickbooks/actions/sparse-update-invoice/sparse-update-invoice.mjs (1 hunks)
  • components/quickbooks/actions/update-customer/update-customer.mjs (1 hunks)
  • components/quickbooks/actions/update-estimate/update-estimate.mjs (1 hunks)
  • components/quickbooks/actions/update-invoice/update-invoice.mjs (1 hunks)
  • components/quickbooks/actions/update-item/update-item.mjs (1 hunks)
  • components/quickbooks/actions/void-invoice/void-invoice.mjs (1 hunks)
  • components/quickbooks/common/utils.mjs (1 hunks)
  • components/quickbooks/package.json (1 hunks)
  • components/quickbooks/quickbooks.app.mjs (1 hunks)
  • components/quickbooks/sources/new-customer-created/new-customer-created.mjs (1 hunks)
  • components/quickbooks/sources/new-customer-updated/new-customer-updated.mjs (1 hunks)
  • components/quickbooks/sources/new-employee-created/new-employee-created.mjs (1 hunks)
  • components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs (1 hunks)
  • components/quickbooks/sources/new-invoice-created/new-invoice-created.mjs (1 hunks)
  • components/quickbooks/sources/new-invoice-updated/new-invoice-updated.mjs (1 hunks)
  • components/quickbooks/sources/new-item-created/new-item-created.mjs (1 hunks)
  • components/quickbooks/sources/new-item-updated/new-item-updated.mjs (1 hunks)
  • components/quickbooks/sources/new-purchase-created/new-purchase-created.mjs (1 hunks)
  • components/quickbooks/sources/new-purchase-updated/new-purchase-updated.mjs (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-01-23T03:55:15.166Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

Applied to files:

  • components/quickbooks/sources/new-invoice-updated/new-invoice-updated.mjs
  • components/quickbooks/sources/new-item-updated/new-item-updated.mjs
📚 Learning: 2024-10-30T15:24:39.294Z
Learnt from: jcortes
Repo: PipedreamHQ/pipedream PR: 14467
File: components/gainsight_px/actions/create-account/create-account.mjs:4-6
Timestamp: 2024-10-30T15:24:39.294Z
Learning: In `components/gainsight_px/actions/create-account/create-account.mjs`, the action name should be "Create Account" instead of "Create Memory".

Applied to files:

  • components/quickbooks/actions/search-accounts/search-accounts.mjs
📚 Learning: 2025-10-20T01:01:02.970Z
Learnt from: js07
Repo: PipedreamHQ/pipedream PR: 18744
File: components/slack_v2/actions/send-large-message/send-large-message.mjs:49-64
Timestamp: 2025-10-20T01:01:02.970Z
Learning: In components/slack_v2/actions/send-large-message/send-large-message.mjs, the metadata_event_payload prop is typed as string, so the code only needs to handle string-to-JSON parsing and does not need to handle object inputs.

Applied to files:

  • components/quickbooks/actions/send-estimate/send-estimate.mjs
🧬 Code graph analysis (2)
components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs (2)
components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs (1)
  • response (145-162)
components/quickbooks/common/utils.mjs (1)
  • commaSeparateArray (223-228)
components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs (2)
components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs (1)
  • response (121-135)
components/quickbooks/common/utils.mjs (2)
  • commaSeparateArray (223-228)
  • booleanToString (230-234)
⏰ 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). (3)
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Lint Code Base
🔇 Additional comments (54)
components/quickbooks/actions/create-bill/create-bill.mjs (1)

9-9: LGTM! Clean version bump.

The patch version increment is appropriate for maintaining package consistency across the QuickBooks component suite with no functional changes to this action.

components/quickbooks/actions/create-invoice/create-invoice.mjs (1)

9-9: Routine version bump.

No functional changes detected; this increment aligns with the package version bump to 0.8.0.

components/quickbooks/actions/search-vendors/search-vendors.mjs (1)

8-8: Routine version bump.

No functional changes detected; this aligns with the package version bump to 0.8.0.

components/quickbooks/actions/create-pl-report/create-pl-report.mjs (1)

10-10: Routine version bump.

No functional changes detected; this aligns with the package version bump to 0.8.0.

components/quickbooks/actions/search-accounts/search-accounts.mjs (1)

8-8: Routine version bump.

No functional changes to query logic; aligns with package version bump to 0.8.0.

components/quickbooks/actions/search-services/search-services.mjs (1)

8-8: Routine version bump.

No functional changes detected; aligns with package version bump to 0.8.0.

components/quickbooks/actions/update-invoice/update-invoice.mjs (1)

12-12: Routine version bump.

No functional changes detected; aligns with package version bump to 0.8.0.

components/quickbooks/actions/get-purchase-order/get-purchase-order.mjs (1)

8-8: Routine version bump.

No functional changes detected; aligns with package version bump to 0.8.0.

components/quickbooks/actions/create-purchase/create-purchase.mjs (1)

9-9: Routine version bump.

No functional changes detected; aligns with package version bump to 0.8.0.

components/quickbooks/actions/search-items/search-items.mjs (1)

8-8: Version bump looks good.

The patch version increment is appropriate for a package-level update with no changes to this action's functionality.

components/quickbooks/actions/get-my-company/get-my-company.mjs (1)

7-7: LGTM!

Metadata-only version bump, consistent with the broader package update.

components/quickbooks/actions/search-customers/search-customers.mjs (1)

8-8: Version bump is appropriate.

No functional changes; patch increment aligns with package-level versioning.

components/quickbooks/package.json (1)

3-3: Appropriate minor version bump for new features.

The increment from 0.7.1 to 0.8.0 correctly follows semantic versioning for the addition of new report actions (Balance Sheet and Cash Flow) to the public API.

components/quickbooks/actions/create-sales-receipt/create-sales-receipt.mjs (1)

9-9: LGTM!

Version increment with no behavioral changes.

components/quickbooks/actions/search-invoices/search-invoices.mjs (1)

8-8: Version bump is correct.

Patch increment with no functional modifications.

components/quickbooks/sources/new-purchase-created/new-purchase-created.mjs (1)

9-9: LGTM!

Metadata-only version update for the event source.

components/quickbooks/actions/update-estimate/update-estimate.mjs (1)

12-12: Version increment looks good.

Patch bump with no changes to the action's logic or behavior.

components/quickbooks/actions/send-invoice/send-invoice.mjs (1)

7-7: LGTM: Version bump only.

This is a metadata-only change coordinated with the package-wide update to 0.8.0. No functional changes observed.

components/quickbooks/actions/search-query/search-query.mjs (1)

8-8: LGTM: Version bump only.

Metadata-only change aligned with the package release. No functional modifications.

components/quickbooks/actions/update-customer/update-customer.mjs (1)

8-8: LGTM: Version bump only.

Metadata-only change. No functional modifications to the customer update logic.

components/quickbooks/sources/new-item-updated/new-item-updated.mjs (1)

9-9: LGTM: Version bump only.

Metadata-only change. No modifications to the event source logic.

components/quickbooks/sources/new-customer-created/new-customer-created.mjs (1)

9-9: LGTM: Version bump only.

Metadata-only change coordinated with the broader package update. No functional changes.

components/quickbooks/actions/sparse-update-invoice/sparse-update-invoice.mjs (1)

9-9: LGTM: Version bump only.

Metadata-only change. The invoice sparse update logic remains unchanged.

components/quickbooks/sources/new-invoice-updated/new-invoice-updated.mjs (1)

9-9: LGTM: Version bump only.

Metadata-only change aligned with the package release. No functional modifications.

components/quickbooks/actions/search-purchases/search-purchases.mjs (1)

7-7: LGTM: Version bump only.

Metadata-only change. No modifications to the purchase search logic.

components/quickbooks/actions/search-time-activities/search-time-activities.mjs (1)

8-8: LGTM: Version bump only.

This is a standard version increment with no functional changes.

components/quickbooks/actions/get-invoice/get-invoice.mjs (1)

8-8: LGTM: Version bump only.

This is a standard version increment with no functional changes.

components/quickbooks/sources/new-item-created/new-item-created.mjs (1)

9-9: LGTM: Version bump only.

This is a standard version increment with no functional changes.

components/quickbooks/sources/new-invoice-created/new-invoice-created.mjs (1)

9-9: LGTM: Version bump only.

This is a standard version increment with no functional changes.

components/quickbooks/actions/get-payment/get-payment.mjs (1)

8-8: LGTM: Version bump only.

This is a standard version increment with no functional changes.

components/quickbooks/actions/get-purchase/get-purchase.mjs (1)

8-8: LGTM: Version bump only.

This is a standard version increment with no functional changes.

components/quickbooks/actions/update-item/update-item.mjs (1)

8-8: LGTM: Version bump only.

This is a standard version increment with no functional changes.

components/quickbooks/actions/get-time-activity/get-time-activity.mjs (1)

8-8: LGTM: Version bump only.

This is a standard version increment with no functional changes.

components/quickbooks/actions/create-estimate/create-estimate.mjs (1)

12-12: LGTM - Version bump is appropriate.

The patch version increment aligns with the PR's addition of new report actions without modifying existing action logic.

components/quickbooks/actions/send-estimate/send-estimate.mjs (1)

7-7: LGTM - Version bump is appropriate.

Consistent patch version increment with no functional changes.

components/quickbooks/actions/get-bill/get-bill.mjs (1)

8-8: LGTM - Version bump is appropriate.

Patch version increment consistent with the coordinated release.

components/quickbooks/actions/create-purchase-order/create-purchase-order.mjs (1)

12-12: LGTM - Version bump is appropriate.

The patch version increment is consistent with the broader release scope.

components/quickbooks/actions/search-products/search-products.mjs (1)

8-8: LGTM - Version bump is appropriate.

Patch version increment with no behavioral changes.

components/quickbooks/actions/void-invoice/void-invoice.mjs (1)

8-8: LGTM - Version bump is appropriate.

Consistent patch version increment for this coordinated release.

components/quickbooks/sources/new-purchase-updated/new-purchase-updated.mjs (1)

9-9: LGTM - Version bump is appropriate.

Patch version increment with no changes to source logic.

components/quickbooks/sources/new-employee-created/new-employee-created.mjs (1)

9-9: LGTM - Version bump is appropriate.

Patch version increment consistent with the repository-wide release.

components/quickbooks/actions/create-ap-aging-report/create-ap-aging-report.mjs (1)

8-8: LGTM: Version bump only.

Metadata-only change as part of the coordinated package release. No functional changes.

components/quickbooks/actions/delete-purchase/delete-purchase.mjs (1)

7-7: LGTM: Version bump only.

Metadata-only change as part of the coordinated package release. No functional changes.

components/quickbooks/actions/get-customer/get-customer.mjs (1)

8-8: LGTM: Version bump only.

Metadata-only change as part of the coordinated package release. No functional changes.

components/quickbooks/actions/get-sales-receipt/get-sales-receipt.mjs (1)

8-8: LGTM: Version bump only.

Metadata-only change as part of the coordinated package release. No functional changes.

components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs (1)

9-9: Inconsistency between summary and code.

The AI summary indicates the version was updated from "0.0.8" to "0.0.9", but the code on Line 9 shows version: "0.0.7". Please verify the correct version number for this source.

components/quickbooks/sources/new-customer-updated/new-customer-updated.mjs (1)

9-9: LGTM: Version bump only.

Metadata-only change as part of the coordinated package release. No functional changes.

components/quickbooks/actions/create-payment/create-payment.mjs (1)

7-7: LGTM: Version bump only.

Metadata-only change as part of the coordinated package release. No functional changes.

components/quickbooks/actions/create-customer/create-customer.mjs (1)

8-8: LGTM: Version bump only.

Metadata-only change as part of the coordinated package release. No functional changes.

components/quickbooks/quickbooks.app.mjs (1)

837-848: LGTM! New report methods follow established patterns.

Both getBalanceSheetReport and getCashFlowReport are implemented consistently with existing report methods like getApAgingReport and getProfitLossReport. The path construction and request handling are correct.

components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs (1)

1-166: LGTM! Well-structured Balance Sheet report action.

The action is well-implemented with:

  • Comprehensive prop definitions with clear labels and descriptions
  • Proper use of commaSeparateArray for array parameters
  • Proper use of booleanToString for boolean parameters
  • Correct parameter name mapping (e.g., classIdsclass, accountingMethodaccounting_method)
  • API documentation reference
  • Clear success message

The implementation is consistent with existing QuickBooks report patterns.

components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs (1)

1-139: LGTM! Cash Flow report action is correctly implemented.

The action is well-structured with:

  • Comprehensive prop definitions with clear labels and descriptions
  • Proper use of commaSeparateArray for all array parameters including classIds at line 129
  • Correct parameter name mapping
  • API documentation reference
  • Clear success message

Note: The past review comment about classIds on line 129 has been addressed—the code correctly applies commaSeparateArray(classIds).

components/quickbooks/common/utils.mjs (2)

230-234: ****

The QuickBooks Online API treats omitting the qzurl parameter and sending qzurl=false equivalently, with the default being false and quick-zoom hrefs only returned when qzurl is true. Therefore, the current implementation of booleanToString converting undefined values to "false" is functionally correct and no changes are needed.


223-228: Handling of empty arrays should be verified against QuickBooks API specifications before making changes.

The review comment suggests that empty arrays returned by commaSeparateArray() could cause API errors when serialized by axios. While this is a reasonable concern for defensive programming, I was unable to find evidence in the codebase confirming this causes actual failures.

Key observations:

  • All array parameters are marked optional: true, so typical usage passes undefined (not empty arrays)
  • Empty arrays would only occur if explicitly passed; axios would serialize these in the query string
  • The axios param serialization strategy and QuickBooks API tolerance for empty array values would determine if this is genuinely problematic
  • Similar utilities like booleanToString() also transform optional values without special empty handling

Before implementing the suggested fix, confirm: (1) whether QuickBooks API rejects or mishandles empty array serialization, (2) if this edge case actually occurs in practice, and (3) whether the suggested change aligns with how other optional parameters are handled in this codebase.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1f97c22 and d09ddfe.

📒 Files selected for processing (4)
  • components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs (1 hunks)
  • components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs (1 hunks)
  • components/quickbooks/common/utils.mjs (1 hunks)
  • components/quickbooks/quickbooks.app.mjs (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs (2)
components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs (1)
  • response (121-135)
components/quickbooks/common/utils.mjs (2)
  • commaSeparateArray (223-228)
  • booleanToString (230-234)
components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs (2)
components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs (1)
  • response (145-162)
components/quickbooks/common/utils.mjs (1)
  • commaSeparateArray (223-228)
⏰ 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: Lint Code Base
  • GitHub Check: pnpm publish
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Verify TypeScript components
🔇 Additional comments (5)
components/quickbooks/common/utils.mjs (2)

223-228: LGTM - Edge case handling is appropriate.

The function correctly handles non-array inputs and empty arrays by returning them as-is, which works well for optional API parameters that may be undefined or null.


230-234: LGTM - Boolean conversion logic is sound.

The function appropriately handles both boolean and string "true" values, and safely converts undefined/null/false to "false" for API consumption.

components/quickbooks/quickbooks.app.mjs (1)

837-848: LGTM - Consistent with existing report methods.

Both methods follow the established pattern used by getProfitLossReport and other report retrieval methods, correctly delegating to _makeRequest with the appropriate API paths.

components/quickbooks/actions/get-balance-sheet-report/get-balance-sheet-report.mjs (1)

1-166: LGTM - Well-structured action module.

The implementation follows established patterns for QuickBooks report actions, with proper prop definitions, appropriate use of utility functions for parameter transformation, and clear documentation.

components/quickbooks/actions/get-cash-flow-report/get-cash-flow-report.mjs (1)

1-139: Well-structured action module with one inconsistency.

The overall implementation follows established patterns for QuickBooks report actions, with proper prop definitions and clear documentation. However, please address the classIds parameter handling issue noted in the separate comment.

@jcortes jcortes force-pushed the quickbooks-new-components branch from d09ddfe to 7fb4247 Compare November 14, 2025 21:43
Copy link
Collaborator

@luancazarine luancazarine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @jcortes, LGTM! Ready for QA!

@vunguyenhung
Copy link
Collaborator

Hi everyone, all test cases are passed! Ready for release!

Test reports

@michelle0927
Copy link
Collaborator

@jcortes Don't forget to update the Quickbooks Sandbox app as well (as requested by the issue).

@jcortes jcortes merged commit 50dd5b6 into master Nov 18, 2025
10 checks passed
@jcortes jcortes deleted the quickbooks-new-components branch November 18, 2025 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Add the "Statement of Cash Flows" and "Balance Sheet" report to Quickbook MCP

5 participants