refactor ts-apps and add freshdesk record-based support#220
refactor ts-apps and add freshdesk record-based support#220nickmazurenko merged 11 commits intodevelopfrom
Conversation
…narchive, pin, unpin, and delete functionalities
…efund receipt, and voiding transactions
There was a problem hiding this comment.
Pull request overview
This PR refactors and expands several TS apps by adding new Slack + QuickBooks capabilities, introducing Freshdesk record-based CRUD/search support, and aligning i18n + app module exports/imports. It also adds/extends integration/unit tests for Slack, Freshdesk, CopperCRM, Patreon, and QuickBooks.
Changes:
- Slack: added message pin/unpin/delete, channel archive/unarchive/list, user list/info actions, plus an app-mention polling trigger and related response types/i18n/scopes/tests.
- QuickBooks: added void-transaction, create-payment, create-refund-receipt, create-invoice-from-estimate actions with i18n + tests.
- Freshdesk: added a dedicated API client, refactored triggers to use it, split allowed-paths, and added record-based table/type/search/CRUD + expressions with extensive tests.
Reviewed changes
Copilot reviewed 63 out of 63 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| ts/src/tests/slack.test.ts | Expands Slack integration test coverage for new actions and negative cases |
| ts/src/tests/quickbooks.test.skip.ts | Adds skipped integration tests for new QuickBooks actions |
| ts/src/tests/patreon.test.ts | Adds skipped Patreon action/trigger tests |
| ts/src/tests/freshdesk.test.ts | Adds Freshdesk unit + credential-gated integration tests for record-based helpers |
| ts/src/tests/coppercrm.test.ts | Adds skipped CopperCRM tests for actions/triggers/allowed values |
| ts/src/i18n/en/apps/Slack/index.ts | Adds i18n entries for new Slack actions + app_mention trigger |
| ts/src/i18n/en/apps/Quickbooks/index.ts | Adds i18n entries for new QuickBooks actions |
| ts/src/i18n/en/apps/Freshdesk/index.ts | Fixes punctuation and adds i18n for record-based expressions |
| ts/src/i18n/en/apps/AmazonSQS/index.ts | Renames display text from “AWS SQS” to “Amazon SQS” |
| ts/src/i18n/en/apps/AmazonSNS/index.ts | Renames display text from “AWS SNS” to “Amazon SNS” |
| ts/src/i18n/en/apps/AmazonS3/index.ts | Renames display text from “AWS S3” to “Amazon S3” and updates connection title |
| ts/src/i18n/en/apps/AmazonEc2/index.ts | Renames display text from “AWS EC2” to “Amazon EC2” and updates connection title |
| ts/src/i18n/en/apps/AmazonCloudFront/index.ts | Renames display text to “Amazon CloudFront” |
| ts/src/apps/slack/triggers/index.ts | Exports new Slack AppMention trigger |
| ts/src/apps/slack/triggers/app-mention.trigger.ts | Implements polling-based app mention trigger using conversations.history + auth.test |
| ts/src/apps/slack/response-types/user.ts | Exports SlackUserType and adds list_users/get_user_info response types |
| ts/src/apps/slack/response-types/message.ts | Adds delete_message + pin/unpin response types |
| ts/src/apps/slack/response-types/channel.ts | Adds list_channels + archive/unarchive response types |
| ts/src/apps/slack/index.ts | Adds pins:read/pins:write scopes |
| ts/src/apps/slack/helpers/index.ts | Exposes archived-channels allowed-values helper |
| ts/src/apps/slack/helpers/get-archived-channels-allowed-values.ts | Adds helper to list archived channels for unarchive dropdown |
| ts/src/apps/slack/actions/unpin-message.action.ts | Adds unpin_message action |
| ts/src/apps/slack/actions/unarchive-channel.action.ts | Adds unarchive_channel action |
| ts/src/apps/slack/actions/pin-message.action.ts | Adds pin_message action |
| ts/src/apps/slack/actions/list-users.action.ts | Adds list_users action |
| ts/src/apps/slack/actions/list-channels.action.ts | Adds list_channels action |
| ts/src/apps/slack/actions/index.ts | Exports new Slack actions |
| ts/src/apps/slack/actions/get-user-info.action.ts | Adds get_user_info action |
| ts/src/apps/slack/actions/delete-message.action.ts | Adds delete_message action |
| ts/src/apps/slack/actions/archive-channel.action.ts | Adds archive_channel action |
| ts/src/apps/quickbooks/actions/void-transaction.action.ts | Adds void_transaction action |
| ts/src/apps/quickbooks/actions/refund-receipts/create-refund-receipt.action.ts | Adds create_refund_receipt action |
| ts/src/apps/quickbooks/actions/payments/create-payment.action.ts | Adds create_payment action |
| ts/src/apps/quickbooks/actions/invoices/create-invoice-from-estimate.action.ts | Adds create_invoice_from_estimate action |
| ts/src/apps/quickbooks/actions/index.ts | Exports new QuickBooks actions |
| ts/src/apps/freshdesk/triggers/new-ticket.trigger.ts | Refactors trigger webhook registration/deregistration to use freshdeskClient |
| ts/src/apps/freshdesk/triggers/constants.ts | Refactors event item fetch helper to use freshdeskClient |
| ts/src/apps/freshdesk/index.ts | Adds record-based app interface + normalizes subdomain input |
| ts/src/apps/freshdesk/helpers/record-based/update-records.ts | Implements record-based update with WHERE matching + sequential updates |
| ts/src/apps/freshdesk/helpers/record-based/search-records.ts | Implements iterator-based search via list/search endpoints + optional client filters |
| ts/src/apps/freshdesk/helpers/record-based/index.ts | Barrel export for Freshdesk record-based helpers |
| ts/src/apps/freshdesk/helpers/record-based/get-table-list.ts | Implements record-based table list |
| ts/src/apps/freshdesk/helpers/record-based/get-search-options.ts | Adds record-based orderBy options |
| ts/src/apps/freshdesk/helpers/record-based/get-record-type.ts | Builds record schema including custom fields (cached) |
| ts/src/apps/freshdesk/helpers/record-based/get-expressions.ts | Defines supported record-based expressions and maps to i18n |
| ts/src/apps/freshdesk/helpers/record-based/delete-records.ts | Implements record-based delete with required WHERE + sequential deletes |
| ts/src/apps/freshdesk/helpers/record-based/create-records.ts | Implements record-based create with sequential creates |
| ts/src/apps/freshdesk/helpers/record-based/constants.ts | Adds entity configs, field maps, custom-field cache, transformers, and utilities |
| ts/src/apps/freshdesk/helpers/record-based/apply-where-condition.ts | Converts Qore WHERE trees into Freshdesk queries + client-side filters |
| ts/src/apps/freshdesk/helpers/get-ticket-allowed-values.ts | Refactors Freshdesk ticket allowed values to use freshdeskClient |
| ts/src/apps/freshdesk/helpers/get-record-allowed-values.ts | Refactors Freshdesk custom object record helpers to use freshdeskClient |
| ts/src/apps/freshdesk/helpers/constants.ts | Refactors allowed-values fetch helper to use freshdeskClient |
| ts/src/apps/freshdesk/constants.ts | Removes monolithic allowed-path/action generation in favor of new structure |
| ts/src/apps/freshdesk/client.ts | Introduces FreshdeskApiClient wrapper around QoreApiClient |
| ts/src/apps/freshdesk/allowed-paths/tickets.ts | Extracts ticket allowed paths + action generation |
| ts/src/apps/freshdesk/allowed-paths/index.ts | Aggregates allowed-path action lists |
| ts/src/apps/freshdesk/allowed-paths/custom-objects.ts | Extracts custom object allowed paths + action generation |
| ts/src/apps/freshdesk/allowed-paths/contacts.ts | Extracts contact allowed paths + action generation |
| ts/src/apps/freshdesk/allowed-paths/companies.ts | Extracts company allowed paths + action generation |
| ts/src/apps/freshdesk/allowed-paths/agents.ts | Extracts agent allowed paths + action generation |
| ts/src/apps/canva/index.ts | Fixes incorrect Canva actions/triggers import names |
| ts/src/apps/brevo/index.ts | Fixes incorrect Brevo actions/triggers import names |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ts/src/apps/quickbooks/actions/refund-receipts/create-refund-receipt.action.ts
Show resolved
Hide resolved
ts/src/apps/freshdesk/helpers/record-based/apply-where-condition.ts
Outdated
Show resolved
Hide resolved
…alues in create refund receipt action
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 63 out of 63 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.