diff --git a/components/quickbooks/package.json b/components/quickbooks/package.json index b53bc5fa84355..20ca1373bdcc8 100644 --- a/components/quickbooks/package.json +++ b/components/quickbooks/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/quickbooks", - "version": "0.3.0", + "version": "0.4.0", "description": "Pipedream Quickbooks Components", "main": "quickbooks.app.mjs", "keywords": [ diff --git a/components/quickbooks/sources/new-employee-created/new-employee-created.mjs b/components/quickbooks/sources/new-employee-created/new-employee-created.mjs new file mode 100644 index 0000000000000..5e919de6c754c --- /dev/null +++ b/components/quickbooks/sources/new-employee-created/new-employee-created.mjs @@ -0,0 +1,28 @@ +import common from "../common/base.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "quickbooks-new-employee-created", + name: "New Employee Created", + description: "Emit new event when a new employee is created.", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getQuery(lastDate) { + return `select * from Employee Where Metadata.CreateTime >= '${lastDate}' orderby Metadata.CreateTime desc`; + }, + getFieldList() { + return "Employee"; + }, + getFieldDate() { + return "CreateTime"; + }, + getSummary(item) { + return `New Employee: ${item.Id}`; + }, + }, + sampleEmit, +}; diff --git a/components/quickbooks/sources/new-employee-created/test-event.mjs b/components/quickbooks/sources/new-employee-created/test-event.mjs new file mode 100644 index 0000000000000..95c34d34de479 --- /dev/null +++ b/components/quickbooks/sources/new-employee-created/test-event.mjs @@ -0,0 +1,16 @@ +export default { + "BillableTime": false, + "domain": "QBO", + "sparse": false, + "Id": "55", + "SyncToken": "0", + "MetaData": { + "CreateTime": "2021-08-30T11:21:48-07:00", + "LastUpdatedTime": "2021-08-30T11:21:48-07:00" + }, + "GivenName": "Emily", + "FamilyName": "Platt", + "DisplayName": "Emily Platt", + "PrintOnCheckName": "Emily Platt", + "Active": true +} \ No newline at end of file diff --git a/components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs b/components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs new file mode 100644 index 0000000000000..717840c9e022f --- /dev/null +++ b/components/quickbooks/sources/new-employee-updated/new-employee-updated.mjs @@ -0,0 +1,28 @@ +import common from "../common/base.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "quickbooks-new-employee-updated", + name: "New Employee Updated", + description: "Emit new event when an employee is updated.", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getQuery(lastDate) { + return `select * from Employee Where Metadata.LastUpdatedTime >= '${lastDate}' orderby Metadata.LastUpdatedTime desc`; + }, + getFieldList() { + return "Employee"; + }, + getFieldDate() { + return "LastUpdatedTime"; + }, + getSummary(item) { + return `Employee Updated: ${item.Id}`; + }, + }, + sampleEmit, +}; diff --git a/components/quickbooks/sources/new-employee-updated/test-event.mjs b/components/quickbooks/sources/new-employee-updated/test-event.mjs new file mode 100644 index 0000000000000..95c34d34de479 --- /dev/null +++ b/components/quickbooks/sources/new-employee-updated/test-event.mjs @@ -0,0 +1,16 @@ +export default { + "BillableTime": false, + "domain": "QBO", + "sparse": false, + "Id": "55", + "SyncToken": "0", + "MetaData": { + "CreateTime": "2021-08-30T11:21:48-07:00", + "LastUpdatedTime": "2021-08-30T11:21:48-07:00" + }, + "GivenName": "Emily", + "FamilyName": "Platt", + "DisplayName": "Emily Platt", + "PrintOnCheckName": "Emily Platt", + "Active": true +} \ No newline at end of file diff --git a/components/quickbooks_sandbox/common/utils.mjs b/components/quickbooks_sandbox/common/utils.mjs new file mode 100644 index 0000000000000..d42df055ddeb0 --- /dev/null +++ b/components/quickbooks_sandbox/common/utils.mjs @@ -0,0 +1,40 @@ +export function adjustPropDefinitions(props, app) { + return Object.fromEntries( + Object.entries(props).map(([ + key, + prop, + ]) => { + if (typeof prop === "string") return [ + key, + prop, + ]; + const { + propDefinition, ...otherValues + } = prop; + if (propDefinition) { + const [ + , ...otherDefs + ] = propDefinition; + return [ + key, + { + propDefinition: [ + app, + ...otherDefs, + ], + ...otherValues, + }, + ]; + } + return [ + key, + otherValues.type === "app" + ? null + : otherValues, + ]; + }) + .filter(([ + , value, + ]) => value), + ); +} diff --git a/components/quickbooks_sandbox/package.json b/components/quickbooks_sandbox/package.json new file mode 100644 index 0000000000000..3d9196f26d78c --- /dev/null +++ b/components/quickbooks_sandbox/package.json @@ -0,0 +1,15 @@ +{ + "name": "@pipedream/quickbooks_sandbox", + "version": "0.0.1", + "description": "Pipedream Quickbooks Sandbox Components", + "main": "quickbooks_sandbox.app.mjs", + "keywords": [ + "pipedream", + "quickbooks_sandbox" + ], + "homepage": "https://pipedream.com/apps/quickbooks_sandbox", + "author": "Pipedream (https://pipedream.com/)", + "publishConfig": { + "access": "public" + } +} diff --git a/components/quickbooks_sandbox/quickbooks_sandbox.app.mjs b/components/quickbooks_sandbox/quickbooks_sandbox.app.mjs index 8fc6bc9dc64db..5dd4b8dc33e63 100644 --- a/components/quickbooks_sandbox/quickbooks_sandbox.app.mjs +++ b/components/quickbooks_sandbox/quickbooks_sandbox.app.mjs @@ -1,11 +1,12 @@ +import common from "../quickbooks/quickbooks.app.mjs"; + export default { type: "app", app: "quickbooks_sandbox", - propDefinitions: {}, methods: { - // this.$auth contains connected account data - authKeys() { - console.log(Object.keys(this.$auth)); + ...common.methods, + _apiUrl() { + return "https://sandbox-quickbooks.api.intuit.com/v3"; }, }, }; diff --git a/components/quickbooks_sandbox/sources/new-employee-created/new-employee-created.mjs b/components/quickbooks_sandbox/sources/new-employee-created/new-employee-created.mjs new file mode 100644 index 0000000000000..4527818a02fed --- /dev/null +++ b/components/quickbooks_sandbox/sources/new-employee-created/new-employee-created.mjs @@ -0,0 +1,22 @@ +import app from "../../quickbooks_sandbox.app.mjs"; +import common from "../../../quickbooks/sources/new-employee-created/new-employee-created.mjs"; + +import { adjustPropDefinitions } from "../../common/utils.mjs"; + +const { + name, description, type, ...others +} = common; +const props = adjustPropDefinitions(others.props, app); + +export default { + ...others, + key: "quickbooks_sandbox-new-employee-created", + version: "0.0.1", + name, + description, + type, + props: { + quickbooks: app, + ...props, + }, +}; diff --git a/components/quickbooks_sandbox/sources/new-employee-updated/new-employee-updated.mjs b/components/quickbooks_sandbox/sources/new-employee-updated/new-employee-updated.mjs new file mode 100644 index 0000000000000..bffbfa3781f6b --- /dev/null +++ b/components/quickbooks_sandbox/sources/new-employee-updated/new-employee-updated.mjs @@ -0,0 +1,22 @@ +import app from "../../quickbooks_sandbox.app.mjs"; +import common from "../../../quickbooks/sources/new-employee-updated/new-employee-updated.mjs"; + +import { adjustPropDefinitions } from "../../common/utils.mjs"; + +const { + name, description, type, ...others +} = common; +const props = adjustPropDefinitions(others.props, app); + +export default { + ...others, + key: "quickbooks_sandbox-new-employee-updated", + version: "0.0.1", + name, + description, + type, + props: { + quickbooks: app, + ...props, + }, +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 641f9a8ec00c3..08fe8a6ed2bf8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8137,6 +8137,8 @@ importers: specifier: ^3.0.0 version: 3.0.3 + components/quickbooks_sandbox: {} + components/quickemailverification: dependencies: '@pipedream/platform':