@limetech/n8n-nodes-lime 2.3.1-dev.1 → 2.5.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/lint.yml +1 -1
- package/.github/workflows/release.yml +16 -2
- package/.github/workflows/test-and-build.yml +0 -15
- package/.releaserc.json +1 -0
- package/CHANGELOG.md +42 -2
- package/dist/credentials/FortnoxApi.credentials.d.ts +9 -0
- package/dist/credentials/FortnoxApi.credentials.js +57 -0
- package/dist/credentials/FortnoxApi.credentials.js.map +1 -0
- package/dist/credentials/LimeCrmApi.credentials.d.ts +9 -0
- package/dist/credentials/LimeCrmApi.credentials.js +70 -0
- package/dist/credentials/LimeCrmApi.credentials.js.map +1 -0
- package/dist/credentials/index.d.ts +2 -0
- package/dist/credentials/index.js +19 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/nodes/errorHandling.d.ts +11 -0
- package/dist/nodes/errorHandling.js +20 -0
- package/dist/nodes/errorHandling.js.map +1 -0
- package/dist/nodes/fortnox/Fortnox.node.d.ts +5 -0
- package/dist/nodes/fortnox/Fortnox.node.js +95 -0
- package/dist/nodes/fortnox/Fortnox.node.js.map +1 -0
- package/dist/nodes/fortnox/Fortnox.node.json +18 -0
- package/dist/nodes/fortnox/FortnoxTrigger.node.d.ts +5 -0
- package/dist/nodes/fortnox/FortnoxTrigger.node.js +155 -0
- package/dist/nodes/fortnox/FortnoxTrigger.node.js.map +1 -0
- package/dist/nodes/fortnox/FortnoxTrigger.node.json +18 -0
- package/dist/nodes/fortnox/commons.d.ts +25 -0
- package/dist/nodes/fortnox/commons.js +44 -0
- package/dist/nodes/fortnox/commons.js.map +1 -0
- package/dist/nodes/fortnox/fortnoxLogo.svg +15 -0
- package/dist/nodes/fortnox/index.d.ts +6 -0
- package/dist/nodes/fortnox/index.js +23 -0
- package/dist/nodes/fortnox/index.js.map +1 -0
- package/dist/nodes/fortnox/model.d.ts +20 -0
- package/dist/nodes/fortnox/model.js +3 -0
- package/dist/nodes/fortnox/model.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/filterParameters.d.ts +2 -0
- package/dist/nodes/fortnox/resources/customers/filterParameters.js +31 -0
- package/dist/nodes/fortnox/resources/customers/filterParameters.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/index.d.ts +7 -0
- package/dist/nodes/fortnox/resources/customers/index.js +85 -0
- package/dist/nodes/fortnox/resources/customers/index.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/model.d.ts +99 -0
- package/dist/nodes/fortnox/resources/customers/model.js +3 -0
- package/dist/nodes/fortnox/resources/customers/model.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.d.ts +10 -0
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.js +281 -0
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.d.ts +9 -0
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js +38 -0
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.d.ts +10 -0
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.js +38 -0
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.d.ts +10 -0
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js +68 -0
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/operations/index.d.ts +5 -0
- package/dist/nodes/fortnox/resources/customers/operations/index.js +42 -0
- package/dist/nodes/fortnox/resources/customers/operations/index.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.d.ts +10 -0
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.js +261 -0
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.js.map +1 -0
- package/dist/nodes/fortnox/resources/customers/sortParameters.d.ts +2 -0
- package/dist/nodes/fortnox/resources/customers/sortParameters.js +30 -0
- package/dist/nodes/fortnox/resources/customers/sortParameters.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/filterParameters.d.ts +2 -0
- package/dist/nodes/fortnox/resources/invoice/filterParameters.js +72 -0
- package/dist/nodes/fortnox/resources/invoice/filterParameters.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/index.d.ts +7 -0
- package/dist/nodes/fortnox/resources/invoice/index.js +81 -0
- package/dist/nodes/fortnox/resources/invoice/index.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.d.ts +2 -0
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js +193 -0
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/model.d.ts +147 -0
- package/dist/nodes/fortnox/resources/invoice/model.js +3 -0
- package/dist/nodes/fortnox/resources/invoice/model.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.d.ts +10 -0
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js +64 -0
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.d.ts +10 -0
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js +37 -0
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.d.ts +10 -0
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js +92 -0
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/operations/index.d.ts +4 -0
- package/dist/nodes/fortnox/resources/invoice/operations/index.js +41 -0
- package/dist/nodes/fortnox/resources/invoice/operations/index.js.map +1 -0
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.d.ts +10 -0
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js +64 -0
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js.map +1 -0
- package/dist/nodes/fortnox/transport/errorCodes.d.ts +1 -0
- package/dist/nodes/fortnox/transport/errorCodes.js +50 -0
- package/dist/nodes/fortnox/transport/errorCodes.js.map +1 -0
- package/dist/nodes/fortnox/transport/index.d.ts +3 -0
- package/dist/nodes/fortnox/transport/index.js +76 -0
- package/dist/nodes/fortnox/transport/index.js.map +1 -0
- package/dist/nodes/index.d.ts +4 -0
- package/dist/nodes/index.js +21 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/nodes/lime-crm/LimeCrm.node.json +18 -0
- package/dist/nodes/lime-crm/LimeCrmNode.node.d.ts +19 -0
- package/dist/nodes/lime-crm/LimeCrmNode.node.js +122 -0
- package/dist/nodes/lime-crm/LimeCrmNode.node.js.map +1 -0
- package/dist/nodes/lime-crm/LimeCrmTrigger.node.d.ts +18 -0
- package/dist/nodes/lime-crm/LimeCrmTrigger.node.js +215 -0
- package/dist/nodes/lime-crm/LimeCrmTrigger.node.js.map +1 -0
- package/dist/nodes/lime-crm/assets/lime-crm.svg +1 -0
- package/dist/nodes/lime-crm/index.d.ts +9 -0
- package/dist/nodes/lime-crm/index.js +26 -0
- package/dist/nodes/lime-crm/index.js.map +1 -0
- package/dist/nodes/lime-crm/methods/getLimetypeProperties.d.ts +5 -0
- package/dist/nodes/lime-crm/methods/getLimetypeProperties.js +47 -0
- package/dist/nodes/lime-crm/methods/getLimetypeProperties.js.map +1 -0
- package/dist/nodes/lime-crm/methods/getLimetypes.d.ts +2 -0
- package/dist/nodes/lime-crm/methods/getLimetypes.js +20 -0
- package/dist/nodes/lime-crm/methods/getLimetypes.js.map +1 -0
- package/dist/nodes/lime-crm/methods/index.d.ts +3 -0
- package/dist/nodes/lime-crm/methods/index.js +15 -0
- package/dist/nodes/lime-crm/methods/index.js.map +1 -0
- package/dist/nodes/lime-crm/methods/resourceMapping.d.ts +4 -0
- package/dist/nodes/lime-crm/methods/resourceMapping.js +71 -0
- package/dist/nodes/lime-crm/methods/resourceMapping.js.map +1 -0
- package/dist/nodes/lime-crm/models/constants.d.ts +9 -0
- package/dist/nodes/lime-crm/models/constants.js +10 -0
- package/dist/nodes/lime-crm/models/constants.js.map +1 -0
- package/dist/nodes/lime-crm/models/index.d.ts +6 -0
- package/dist/nodes/lime-crm/models/index.js +13 -0
- package/dist/nodes/lime-crm/models/index.js.map +1 -0
- package/dist/nodes/lime-crm/models/limeobject.d.ts +4 -0
- package/dist/nodes/lime-crm/models/limeobject.js +3 -0
- package/dist/nodes/lime-crm/models/limeobject.js.map +1 -0
- package/dist/nodes/lime-crm/models/limetype.d.ts +24 -0
- package/dist/nodes/lime-crm/models/limetype.js +3 -0
- package/dist/nodes/lime-crm/models/limetype.js.map +1 -0
- package/dist/nodes/lime-crm/models/propertyTypes.d.ts +4 -0
- package/dist/nodes/lime-crm/models/propertyTypes.js +5 -0
- package/dist/nodes/lime-crm/models/propertyTypes.js.map +1 -0
- package/dist/nodes/lime-crm/models/users.d.ts +13 -0
- package/dist/nodes/lime-crm/models/users.js +3 -0
- package/dist/nodes/lime-crm/models/users.js.map +1 -0
- package/dist/nodes/lime-crm/models/webhook.d.ts +18 -0
- package/dist/nodes/lime-crm/models/webhook.js +3 -0
- package/dist/nodes/lime-crm/models/webhook.js.map +1 -0
- package/dist/nodes/lime-crm/resources/admin/index.d.ts +7 -0
- package/dist/nodes/lime-crm/resources/admin/index.js +89 -0
- package/dist/nodes/lime-crm/resources/admin/index.js.map +1 -0
- package/dist/nodes/lime-crm/resources/admin/operations/getManyUsers.operation.d.ts +11 -0
- package/dist/nodes/lime-crm/resources/admin/operations/getManyUsers.operation.js +123 -0
- package/dist/nodes/lime-crm/resources/admin/operations/getManyUsers.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/admin/operations/getSingleUser.operation.d.ts +11 -0
- package/dist/nodes/lime-crm/resources/admin/operations/getSingleUser.operation.js +87 -0
- package/dist/nodes/lime-crm/resources/admin/operations/getSingleUser.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/admin/operations/index.d.ts +2 -0
- package/dist/nodes/lime-crm/resources/admin/operations/index.js +39 -0
- package/dist/nodes/lime-crm/resources/admin/operations/index.js.map +1 -0
- package/dist/nodes/lime-crm/resources/data/index.d.ts +7 -0
- package/dist/nodes/lime-crm/resources/data/index.js +108 -0
- package/dist/nodes/lime-crm/resources/data/index.js.map +1 -0
- package/dist/nodes/lime-crm/resources/data/operations/createSingleObject.operation.d.ts +11 -0
- package/dist/nodes/lime-crm/resources/data/operations/createSingleObject.operation.js +124 -0
- package/dist/nodes/lime-crm/resources/data/operations/createSingleObject.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/data/operations/deleteSingleObject.operation.d.ts +10 -0
- package/dist/nodes/lime-crm/resources/data/operations/deleteSingleObject.operation.js +52 -0
- package/dist/nodes/lime-crm/resources/data/operations/deleteSingleObject.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/data/operations/getManyObjects.operation.d.ts +11 -0
- package/dist/nodes/lime-crm/resources/data/operations/getManyObjects.operation.js +299 -0
- package/dist/nodes/lime-crm/resources/data/operations/getManyObjects.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/data/operations/getSingleFile.operation.d.ts +9 -0
- package/dist/nodes/lime-crm/resources/data/operations/getSingleFile.operation.js +125 -0
- package/dist/nodes/lime-crm/resources/data/operations/getSingleFile.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/data/operations/getSingleObject.operation.d.ts +11 -0
- package/dist/nodes/lime-crm/resources/data/operations/getSingleObject.operation.js +79 -0
- package/dist/nodes/lime-crm/resources/data/operations/getSingleObject.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/data/operations/index.d.ts +6 -0
- package/dist/nodes/lime-crm/resources/data/operations/index.js +43 -0
- package/dist/nodes/lime-crm/resources/data/operations/index.js.map +1 -0
- package/dist/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.d.ts +11 -0
- package/dist/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.js +146 -0
- package/dist/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/metadata/index.d.ts +7 -0
- package/dist/nodes/lime-crm/resources/metadata/index.js +93 -0
- package/dist/nodes/lime-crm/resources/metadata/index.js.map +1 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getAllLimetypes.operation.d.ts +10 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getAllLimetypes.operation.js +16 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getAllLimetypes.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getSingleFileMetadata.operation.d.ts +11 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getSingleFileMetadata.operation.js +113 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getSingleFileMetadata.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getSingleLimetype.operation.d.ts +11 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getSingleLimetype.operation.js +37 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/getSingleLimetype.operation.js.map +1 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/index.d.ts +3 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/index.js +40 -0
- package/dist/nodes/lime-crm/resources/metadata/operations/index.js.map +1 -0
- package/dist/nodes/lime-crm/transport/commons.d.ts +14 -0
- package/dist/nodes/lime-crm/transport/commons.js +52 -0
- package/dist/nodes/lime-crm/transport/commons.js.map +1 -0
- package/dist/nodes/lime-crm/transport/files.d.ts +26 -0
- package/dist/nodes/lime-crm/transport/files.js +96 -0
- package/dist/nodes/lime-crm/transport/files.js.map +1 -0
- package/dist/nodes/lime-crm/transport/index.d.ts +7 -0
- package/dist/nodes/lime-crm/transport/index.js +32 -0
- package/dist/nodes/lime-crm/transport/index.js.map +1 -0
- package/dist/nodes/lime-crm/transport/limeQuery.d.ts +10 -0
- package/dist/nodes/lime-crm/transport/limeQuery.js +18 -0
- package/dist/nodes/lime-crm/transport/limeQuery.js.map +1 -0
- package/dist/nodes/lime-crm/transport/limeobjects.d.ts +16 -0
- package/dist/nodes/lime-crm/transport/limeobjects.js +76 -0
- package/dist/nodes/lime-crm/transport/limeobjects.js.map +1 -0
- package/dist/nodes/lime-crm/transport/limetypes.d.ts +33 -0
- package/dist/nodes/lime-crm/transport/limetypes.js +85 -0
- package/dist/nodes/lime-crm/transport/limetypes.js.map +1 -0
- package/dist/nodes/lime-crm/transport/users.d.ts +6 -0
- package/dist/nodes/lime-crm/transport/users.js +159 -0
- package/dist/nodes/lime-crm/transport/users.js.map +1 -0
- package/dist/nodes/lime-crm/transport/webhooks.d.ts +14 -0
- package/dist/nodes/lime-crm/transport/webhooks.js +51 -0
- package/dist/nodes/lime-crm/transport/webhooks.js.map +1 -0
- package/dist/nodes/lime-crm/utils/files.d.ts +8 -0
- package/dist/nodes/lime-crm/utils/files.js +103 -0
- package/dist/nodes/lime-crm/utils/files.js.map +1 -0
- package/dist/nodes/lime-crm/utils/hmac.d.ts +1 -0
- package/dist/nodes/lime-crm/utils/hmac.js +11 -0
- package/dist/nodes/lime-crm/utils/hmac.js.map +1 -0
- package/dist/nodes/lime-crm/utils/index.d.ts +4 -0
- package/dist/nodes/lime-crm/utils/index.js +16 -0
- package/dist/nodes/lime-crm/utils/index.js.map +1 -0
- package/dist/nodes/lime-crm/utils/webhook.d.ts +2 -0
- package/dist/nodes/lime-crm/utils/webhook.js +34 -0
- package/dist/nodes/lime-crm/utils/webhook.js.map +1 -0
- package/dist/nodes/modules.d.ts +12 -0
- package/dist/nodes/modules.js +16 -0
- package/dist/nodes/modules.js.map +1 -0
- package/dist/nodes/response.d.ts +18 -0
- package/dist/nodes/response.js +3 -0
- package/dist/nodes/response.js.map +1 -0
- package/dist/package.json +69 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/nodes/errorHandling.ts +60 -0
- package/nodes/lime-crm/LimeCrmNode.node.ts +8 -0
- package/nodes/lime-crm/LimeCrmTrigger.node.ts +19 -5
- package/nodes/lime-crm/methods/getLimetypeProperties.ts +3 -1
- package/nodes/lime-crm/methods/getLimetypes.ts +2 -1
- package/nodes/lime-crm/methods/index.ts +5 -0
- package/nodes/lime-crm/methods/resourceMapping.ts +141 -0
- package/nodes/lime-crm/models/limetype.ts +18 -0
- package/nodes/lime-crm/resources/admin/index.ts +9 -4
- package/nodes/lime-crm/resources/admin/operations/getManyUsers.operation.ts +10 -2
- package/nodes/lime-crm/resources/admin/operations/getSingleUser.operation.ts +14 -15
- package/nodes/lime-crm/resources/data/index.ts +15 -6
- package/nodes/lime-crm/resources/data/operations/createSingleObject.operation.ts +25 -71
- package/nodes/lime-crm/resources/data/operations/deleteSingleObject.operation.ts +7 -2
- package/nodes/lime-crm/resources/data/operations/getManyObjects.operation.ts +6 -2
- package/nodes/lime-crm/resources/data/operations/getSingleFile.operation.ts +15 -3
- package/nodes/lime-crm/resources/data/operations/getSingleObject.operation.ts +15 -6
- package/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.ts +41 -57
- package/nodes/lime-crm/resources/metadata/index.ts +7 -3
- package/nodes/lime-crm/resources/metadata/operations/getAllLimetypes.operation.ts +6 -2
- package/nodes/lime-crm/resources/metadata/operations/getSingleFileMetadata.operation.ts +18 -15
- package/nodes/lime-crm/resources/metadata/operations/getSingleLimetype.operation.ts +8 -3
- package/nodes/lime-crm/transport/commons.ts +34 -20
- package/nodes/lime-crm/transport/files.ts +72 -47
- package/nodes/lime-crm/transport/limeQuery.ts +2 -2
- package/nodes/lime-crm/transport/limeobjects.ts +22 -10
- package/nodes/lime-crm/transport/limetypes.ts +37 -16
- package/nodes/lime-crm/transport/users.ts +74 -38
- package/nodes/lime-crm/transport/webhooks.ts +5 -4
- package/nodes/lime-crm/utils/files.ts +27 -10
- package/nodes/lime-crm/utils/index.ts +1 -1
- package/nodes/response.ts +41 -3
- package/package.json +4 -2
- package/tests/nodes/lime-crm/methods.spec.ts +91 -0
- package/tests/nodes/lime-crm/utils.spec.ts +60 -25
- package/nodes/lime-crm/utils/propertyAdapters.ts +0 -75
- package/restore_script/README +0 -42
- package/restore_script/api_key_upload.txt +0 -0
- package/restore_script/cli.py +0 -73
- package/restore_script/download.py +0 -73
- package/restore_script/main.py +0 -19
- package/restore_script/poetry.lock +0 -162
- package/restore_script/pyproject.toml +0 -15
- package/restore_script/transfer.py +0 -41
- package/restore_script/upload.py +0 -66
- package/restore_script/utils.py +0 -42
- /package/{restore_script/api_key_download.txt → Dockerfile} +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FieldType,
|
|
3
|
+
ILoadOptionsFunctions,
|
|
4
|
+
ResourceMapperFields,
|
|
5
|
+
LoggerProxy as Logger,
|
|
6
|
+
IExecuteFunctions,
|
|
7
|
+
IDataObject,
|
|
8
|
+
ResourceMapperValue,
|
|
9
|
+
} from 'n8n-workflow';
|
|
10
|
+
import { getProperties } from '../transport';
|
|
11
|
+
import { LimetypeProperty } from '../models';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A map of Lime CRM field types to n8n native types
|
|
15
|
+
*/
|
|
16
|
+
const LimeCrmTypeToFieldType = new Map(
|
|
17
|
+
Object.entries({
|
|
18
|
+
option: 'options',
|
|
19
|
+
yesno: 'boolean',
|
|
20
|
+
decimal: 'number',
|
|
21
|
+
number: 'number',
|
|
22
|
+
})
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Function which maps Lime CRM to n8n types using the map above. If the type
|
|
27
|
+
* is not declared in a map, string is used.
|
|
28
|
+
* @param limeCrmType
|
|
29
|
+
* @returns n8n native {@link FieldType}
|
|
30
|
+
*/
|
|
31
|
+
function mapLimeCrmType(limeCrmType: string): FieldType {
|
|
32
|
+
return (LimeCrmTypeToFieldType.get(limeCrmType) as FieldType) || 'string';
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Get a `length` addition to the input headers when there's a string field
|
|
37
|
+
*
|
|
38
|
+
* @param property - a {@link LimetypeProperty}
|
|
39
|
+
* @returns a string with length wrapped in quotes or an empty string
|
|
40
|
+
*/
|
|
41
|
+
function getPropertyLength(property: LimetypeProperty): string {
|
|
42
|
+
return property.type === 'string' ? `(${property.length})` : '';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Base function to get the description of ResourceMapper fields
|
|
47
|
+
* @param nodeContext
|
|
48
|
+
* @param mode - either `create` or `update` - based on this flag a `required`
|
|
49
|
+
* @param limetype - name of a limetype we are creating or updating
|
|
50
|
+
* property is set
|
|
51
|
+
*/
|
|
52
|
+
async function getMappingColumns(
|
|
53
|
+
nodeContext: ILoadOptionsFunctions,
|
|
54
|
+
mode: 'create' | 'update',
|
|
55
|
+
limetype: string
|
|
56
|
+
): Promise<ResourceMapperFields> {
|
|
57
|
+
const propertiesResponse = await getProperties(nodeContext, limetype);
|
|
58
|
+
if (!propertiesResponse.success) {
|
|
59
|
+
Logger.error(
|
|
60
|
+
`There was an error with fetching properties: ${JSON.stringify(propertiesResponse.data)}`
|
|
61
|
+
);
|
|
62
|
+
return {
|
|
63
|
+
fields: [],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const noRelationProperties = propertiesResponse.data.filter(
|
|
67
|
+
(property) => property.type !== 'hasmany'
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
const fields = noRelationProperties.map((property) => {
|
|
71
|
+
const propertyLengthDescription = getPropertyLength(property);
|
|
72
|
+
return {
|
|
73
|
+
id: property.name,
|
|
74
|
+
displayName: `${property.localname} [${property.type}${propertyLengthDescription}]`,
|
|
75
|
+
required: mode === 'create' ? property.required : false,
|
|
76
|
+
defaultMatch: false,
|
|
77
|
+
display: true,
|
|
78
|
+
type: mapLimeCrmType(property.type),
|
|
79
|
+
options:
|
|
80
|
+
property.type === 'option' && property.options
|
|
81
|
+
? property.options
|
|
82
|
+
.filter((option) => !option.inactive)
|
|
83
|
+
.map((option) => {
|
|
84
|
+
return {
|
|
85
|
+
value: option.key,
|
|
86
|
+
name: option.text,
|
|
87
|
+
};
|
|
88
|
+
})
|
|
89
|
+
: undefined,
|
|
90
|
+
};
|
|
91
|
+
});
|
|
92
|
+
return {
|
|
93
|
+
fields: fields.sort((a, b) => {
|
|
94
|
+
if (a.required !== b.required) {
|
|
95
|
+
return a.required ? -1 : 1;
|
|
96
|
+
}
|
|
97
|
+
return a.displayName.localeCompare(b.displayName);
|
|
98
|
+
}),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Parse resource mapper fields from n8n workflow
|
|
104
|
+
* @param context - Node execution context
|
|
105
|
+
* @param i - The index of the current item in the workflow execution
|
|
106
|
+
* @param inputName - name of the resource mapper input
|
|
107
|
+
* @returns IDataObject - parsed data from resource mapper
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
export function parseResourceMapperFields(
|
|
111
|
+
context: IExecuteFunctions,
|
|
112
|
+
i: number,
|
|
113
|
+
inputName: string
|
|
114
|
+
): IDataObject {
|
|
115
|
+
const propertiesInput = context.getNodeParameter(
|
|
116
|
+
inputName,
|
|
117
|
+
i
|
|
118
|
+
) as ResourceMapperValue;
|
|
119
|
+
|
|
120
|
+
return propertiesInput.value as IDataObject;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Method for getting resource mapper fields in `create` mode
|
|
125
|
+
*/
|
|
126
|
+
export async function getCreateMappingColumns(
|
|
127
|
+
this: ILoadOptionsFunctions
|
|
128
|
+
): Promise<ResourceMapperFields> {
|
|
129
|
+
const limetype = this.getNodeParameter('limetype') as string;
|
|
130
|
+
return getMappingColumns(this, 'create', limetype);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Method for getting resource mapper fields in `update` mode
|
|
135
|
+
*/
|
|
136
|
+
export async function getUpdateMappingColumns(
|
|
137
|
+
this: ILoadOptionsFunctions
|
|
138
|
+
): Promise<ResourceMapperFields> {
|
|
139
|
+
const limetype = this.getNodeParameter('limetype') as string;
|
|
140
|
+
return getMappingColumns(this, 'update', limetype);
|
|
141
|
+
}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import { APIResponseValue } from './constants';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Limetype option used only for fields with `option` type.
|
|
5
|
+
* @property key - ID of an option, used as a value for POST/PUT requests in API
|
|
6
|
+
* @property text - display name of an option
|
|
7
|
+
* @property inactive - flag describing whether the property is used or not
|
|
8
|
+
*/
|
|
9
|
+
type LimetypePropertyOption = {
|
|
10
|
+
key: string;
|
|
11
|
+
text: string;
|
|
12
|
+
inactive: boolean;
|
|
13
|
+
};
|
|
14
|
+
|
|
3
15
|
/**
|
|
4
16
|
* Representation of a property of a Limetype.
|
|
5
17
|
*
|
|
6
18
|
* @property name - The internal name of the property
|
|
7
19
|
* @property localname - The display name of the property
|
|
8
20
|
* @property type - The type of the property (e.g., string, file, hasmany)
|
|
21
|
+
* @property required - describes whether a property is required or not
|
|
22
|
+
* @property options - a set of {@link LimetypePropertyOption} used only for
|
|
23
|
+
* fields with type `option`.
|
|
9
24
|
*
|
|
10
25
|
* @public
|
|
11
26
|
* @group Models
|
|
@@ -14,6 +29,9 @@ export type LimetypeProperty = {
|
|
|
14
29
|
name: string;
|
|
15
30
|
localname: string;
|
|
16
31
|
type: string;
|
|
32
|
+
required: boolean;
|
|
33
|
+
length?: number;
|
|
34
|
+
options?: LimetypePropertyOption[];
|
|
17
35
|
} & Record<string, APIResponseValue>;
|
|
18
36
|
|
|
19
37
|
/**
|
|
@@ -68,10 +68,15 @@ export async function adminOperations(
|
|
|
68
68
|
switch (operation) {
|
|
69
69
|
case 'getManyUsers': {
|
|
70
70
|
const result = await operations.getManyUsers.execute.call(this, i);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
if (Array.isArray(result)) {
|
|
72
|
+
return result.map((item: User) => ({
|
|
73
|
+
json: item,
|
|
74
|
+
}));
|
|
75
|
+
} else {
|
|
76
|
+
return {
|
|
77
|
+
json: result,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
75
80
|
}
|
|
76
81
|
case 'getSingleUser': {
|
|
77
82
|
return {
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
DEFAULT_API_OBJECT_LIMIT,
|
|
9
9
|
} from '../../../models';
|
|
10
10
|
import { fetchManyUsers } from '../../../transport';
|
|
11
|
+
import { WorkflowResponse } from '../../../../response';
|
|
11
12
|
|
|
12
13
|
export const description = {
|
|
13
14
|
name: 'Get many users',
|
|
@@ -144,7 +145,7 @@ export const properties: INodeProperties[] = [
|
|
|
144
145
|
export async function execute(
|
|
145
146
|
this: IExecuteFunctions,
|
|
146
147
|
i: number
|
|
147
|
-
): Promise<User[]
|
|
148
|
+
): Promise<WorkflowResponse<User[]>> {
|
|
148
149
|
const active = this.getNodeParameter('active', i) as
|
|
149
150
|
| boolean
|
|
150
151
|
| NullOptionType;
|
|
@@ -162,5 +163,12 @@ export async function execute(
|
|
|
162
163
|
i,
|
|
163
164
|
false
|
|
164
165
|
) as boolean;
|
|
165
|
-
|
|
166
|
+
const response = await fetchManyUsers(
|
|
167
|
+
this,
|
|
168
|
+
active,
|
|
169
|
+
userType,
|
|
170
|
+
limit,
|
|
171
|
+
withCoworker
|
|
172
|
+
);
|
|
173
|
+
return response.data;
|
|
166
174
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
IExecuteFunctions,
|
|
3
|
-
INodeProperties,
|
|
4
|
-
NodeOperationError,
|
|
5
|
-
} from 'n8n-workflow';
|
|
6
|
-
|
|
1
|
+
import { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
|
|
7
2
|
import { User, ADMIN_RESOURCE } from '../../../models';
|
|
8
3
|
import {
|
|
9
4
|
fetchSingleUserById,
|
|
10
5
|
fetchSingleUserByLimeobjectId,
|
|
11
6
|
} from '../../../transport';
|
|
7
|
+
import { WorkflowResponse, APIResponse } from '../../../../response';
|
|
8
|
+
import { handleWorkflowError } from '../../../../errorHandling';
|
|
12
9
|
|
|
13
10
|
export const description = {
|
|
14
11
|
name: 'Get single user',
|
|
@@ -94,20 +91,22 @@ export const properties: INodeProperties[] = [
|
|
|
94
91
|
export async function execute(
|
|
95
92
|
this: IExecuteFunctions,
|
|
96
93
|
i: number
|
|
97
|
-
): Promise<User
|
|
94
|
+
): Promise<WorkflowResponse<User>> {
|
|
98
95
|
const source = this.getNodeParameter('source', i) as string;
|
|
99
96
|
const id = this.getNodeParameter('identifier', i) as string;
|
|
100
97
|
const withCoworker = this.getNodeParameter('withCoworker', i) as boolean;
|
|
101
98
|
|
|
99
|
+
let response: APIResponse<User>;
|
|
100
|
+
|
|
102
101
|
if (source == 'byUser') {
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
102
|
+
response = await fetchSingleUserById(this, id, withCoworker);
|
|
103
|
+
} else if (source == 'byLimeobject') {
|
|
104
|
+
response = await fetchSingleUserByLimeobjectId(this, id, withCoworker);
|
|
105
|
+
} else {
|
|
106
|
+
response = handleWorkflowError(this, {
|
|
107
|
+
message: `The source ${source} is not supported!`,
|
|
108
|
+
});
|
|
107
109
|
}
|
|
108
110
|
|
|
109
|
-
|
|
110
|
-
this.getNode(),
|
|
111
|
-
`The source "${source}" is not supported!`
|
|
112
|
-
);
|
|
111
|
+
return response.data;
|
|
113
112
|
}
|
|
@@ -87,21 +87,30 @@ export async function dataOperations(
|
|
|
87
87
|
}
|
|
88
88
|
case 'updateSingleObject': {
|
|
89
89
|
return {
|
|
90
|
-
|
|
90
|
+
...(await operations.updateSingleObject.execute.call(this, i)),
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
93
|
case 'deleteSingleObject': {
|
|
94
|
-
await operations.deleteSingleObject.execute.call(
|
|
95
|
-
|
|
94
|
+
const response = await operations.deleteSingleObject.execute.call(
|
|
95
|
+
this,
|
|
96
|
+
i
|
|
97
|
+
);
|
|
98
|
+
return { json: response };
|
|
96
99
|
}
|
|
97
100
|
case 'getManyObjects': {
|
|
98
101
|
const result = await operations.getManyObjects.execute.call(
|
|
99
102
|
this,
|
|
100
103
|
i
|
|
101
104
|
);
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
if (Array.isArray(result)) {
|
|
106
|
+
return result.map((item) => ({
|
|
107
|
+
json: item,
|
|
108
|
+
}));
|
|
109
|
+
} else {
|
|
110
|
+
return {
|
|
111
|
+
json: result,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
105
114
|
}
|
|
106
115
|
case 'getSingleFile': {
|
|
107
116
|
return await operations.getSingleFile.execute.call(this, i);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { IDataObject, IExecuteFunctions, INodeProperties } from 'n8n-workflow';
|
|
2
2
|
|
|
3
3
|
import { createLimeobject, getProperties } from '../../../transport';
|
|
4
|
-
import { DATA_RESOURCE
|
|
4
|
+
import { DATA_RESOURCE } from '../../../models';
|
|
5
5
|
import {
|
|
6
|
-
adaptProperty,
|
|
7
6
|
getFilePropertiesNames,
|
|
8
|
-
getPropertyType,
|
|
9
7
|
processFileResponse,
|
|
10
8
|
setFileProperties,
|
|
11
9
|
} from '../../../utils';
|
|
12
10
|
|
|
11
|
+
import { parseResourceMapperFields } from '../../../methods';
|
|
12
|
+
|
|
13
13
|
/**
|
|
14
14
|
* Description and metadata for the "Create Single Object" operation in Lime CRM.
|
|
15
15
|
*
|
|
@@ -76,12 +76,20 @@ export const properties: INodeProperties[] = [
|
|
|
76
76
|
{
|
|
77
77
|
displayName: 'Properties',
|
|
78
78
|
name: 'properties',
|
|
79
|
-
type: '
|
|
79
|
+
type: 'resourceMapper',
|
|
80
80
|
placeholder: 'Add Property',
|
|
81
81
|
typeOptions: {
|
|
82
|
-
|
|
82
|
+
resourceMapper: {
|
|
83
|
+
resourceMapperMethod: 'getCreateMappingColumns',
|
|
84
|
+
mode: 'add',
|
|
85
|
+
addAllFields: false,
|
|
86
|
+
supportAutoMap: false,
|
|
87
|
+
},
|
|
88
|
+
loadOptionsDependsOn: ['limetype'],
|
|
89
|
+
},
|
|
90
|
+
default: {
|
|
91
|
+
value: null,
|
|
83
92
|
},
|
|
84
|
-
default: {},
|
|
85
93
|
displayOptions: {
|
|
86
94
|
show: {
|
|
87
95
|
resource: [DATA_RESOURCE],
|
|
@@ -89,33 +97,6 @@ export const properties: INodeProperties[] = [
|
|
|
89
97
|
inputMethod: ['fields'],
|
|
90
98
|
},
|
|
91
99
|
},
|
|
92
|
-
options: [
|
|
93
|
-
{
|
|
94
|
-
displayName: 'Property',
|
|
95
|
-
name: 'property',
|
|
96
|
-
values: [
|
|
97
|
-
{
|
|
98
|
-
displayName: 'Property Name',
|
|
99
|
-
name: 'name',
|
|
100
|
-
type: 'options',
|
|
101
|
-
typeOptions: {
|
|
102
|
-
sortable: true,
|
|
103
|
-
loadOptionsMethod: 'getNoHasManyProperties',
|
|
104
|
-
loadOptionsDependsOn: ['limetype'],
|
|
105
|
-
},
|
|
106
|
-
default: '',
|
|
107
|
-
description: 'Name of the property',
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
displayName: 'Property Value',
|
|
111
|
-
name: 'value',
|
|
112
|
-
type: 'string',
|
|
113
|
-
default: '',
|
|
114
|
-
description: 'Value of the property',
|
|
115
|
-
},
|
|
116
|
-
],
|
|
117
|
-
},
|
|
118
|
-
],
|
|
119
100
|
},
|
|
120
101
|
{
|
|
121
102
|
displayName: 'Object (JSON)',
|
|
@@ -136,39 +117,6 @@ export const properties: INodeProperties[] = [
|
|
|
136
117
|
},
|
|
137
118
|
];
|
|
138
119
|
|
|
139
|
-
/**
|
|
140
|
-
*
|
|
141
|
-
* @param context - Node execution context
|
|
142
|
-
* @param i - The index of the current item in the workflow execution
|
|
143
|
-
* @param properties - List of {@link LimeTypeProperty} fetched from Lime CRM
|
|
144
|
-
* @returns IDataObject - parsed data from Simple Fields mode
|
|
145
|
-
*/
|
|
146
|
-
function parseSimpleFieldsData(
|
|
147
|
-
context: IExecuteFunctions,
|
|
148
|
-
i: number,
|
|
149
|
-
properties: LimetypeProperty[]
|
|
150
|
-
): IDataObject {
|
|
151
|
-
const objectData: IDataObject = {};
|
|
152
|
-
const propertiesInput = context.getNodeParameter(
|
|
153
|
-
'properties.property',
|
|
154
|
-
i,
|
|
155
|
-
[]
|
|
156
|
-
) as IDataObject[];
|
|
157
|
-
|
|
158
|
-
if (propertiesInput && propertiesInput.length > 0) {
|
|
159
|
-
for (const prop of propertiesInput) {
|
|
160
|
-
if (prop.name && prop.value !== undefined) {
|
|
161
|
-
const propertyName = prop.name as string;
|
|
162
|
-
objectData[propertyName] = adaptProperty(
|
|
163
|
-
prop.value as string,
|
|
164
|
-
getPropertyType(propertyName, properties)
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return objectData;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
120
|
/**
|
|
173
121
|
* Execute the "Create Single Object" operation for Lime CRM.
|
|
174
122
|
*
|
|
@@ -195,13 +143,16 @@ export async function execute(this: IExecuteFunctions, i: number) {
|
|
|
195
143
|
|
|
196
144
|
let objectData: IDataObject;
|
|
197
145
|
|
|
198
|
-
const
|
|
146
|
+
const propertiesResponse = await getProperties(this, limetype);
|
|
147
|
+
if (!propertiesResponse.success) return propertiesResponse.data;
|
|
148
|
+
|
|
149
|
+
const properties = propertiesResponse.data;
|
|
199
150
|
|
|
200
151
|
if (inputMethod === 'json') {
|
|
201
152
|
const jsonInput = this.getNodeParameter('objectJson', i) as string;
|
|
202
153
|
objectData = JSON.parse(jsonInput);
|
|
203
154
|
} else {
|
|
204
|
-
objectData =
|
|
155
|
+
objectData = parseResourceMapperFields(this, i, 'properties');
|
|
205
156
|
}
|
|
206
157
|
|
|
207
158
|
const fileProperties = getFilePropertiesNames(
|
|
@@ -215,17 +166,20 @@ export async function execute(this: IExecuteFunctions, i: number) {
|
|
|
215
166
|
fileProperties,
|
|
216
167
|
objectData
|
|
217
168
|
);
|
|
169
|
+
if (!setFilePropertiesResponse.success)
|
|
170
|
+
return setFilePropertiesResponse.data;
|
|
218
171
|
|
|
219
172
|
const createLimeobjectResponse = await createLimeobject(
|
|
220
173
|
this,
|
|
221
174
|
limetype,
|
|
222
|
-
setFilePropertiesResponse
|
|
175
|
+
setFilePropertiesResponse.data
|
|
223
176
|
);
|
|
177
|
+
if (!createLimeobjectResponse.success) return createLimeobjectResponse.data;
|
|
224
178
|
|
|
225
179
|
const response = await processFileResponse(
|
|
226
180
|
this,
|
|
227
181
|
fileProperties,
|
|
228
|
-
createLimeobjectResponse
|
|
182
|
+
createLimeobjectResponse.data
|
|
229
183
|
);
|
|
230
|
-
return response.json;
|
|
184
|
+
return response.json.data;
|
|
231
185
|
}
|
|
@@ -2,6 +2,7 @@ import { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
|
|
|
2
2
|
|
|
3
3
|
import { deleteLimeobject } from '../../../transport';
|
|
4
4
|
import { DATA_RESOURCE } from '../../../models';
|
|
5
|
+
import { WorkflowResponse } from '../../../../response';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Description and metadata for the "Delete Single Object" operation in Lime CRM.
|
|
@@ -75,9 +76,13 @@ export const properties: INodeProperties[] = [
|
|
|
75
76
|
*
|
|
76
77
|
* @public
|
|
77
78
|
*/
|
|
78
|
-
export async function execute(
|
|
79
|
+
export async function execute(
|
|
80
|
+
this: IExecuteFunctions,
|
|
81
|
+
i: number
|
|
82
|
+
): Promise<WorkflowResponse<Record<string, never>>> {
|
|
79
83
|
const limetype = this.getNodeParameter('limetype', i) as string;
|
|
80
84
|
const objectId = this.getNodeParameter('objectId', i) as string;
|
|
81
85
|
|
|
82
|
-
|
|
86
|
+
const response = await deleteLimeobject(this, limetype, objectId);
|
|
87
|
+
return response.data;
|
|
83
88
|
}
|
|
@@ -2,6 +2,7 @@ import { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
|
|
|
2
2
|
|
|
3
3
|
import { IncludedProperties, queryLimeobjects } from '../../../transport';
|
|
4
4
|
import { DATA_RESOURCE, DEFAULT_API_OBJECT_LIMIT } from '../../../models';
|
|
5
|
+
import { WorkflowResponse } from '../../../../response';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Description and metadata for the "Get Many Objects" operation in Lime CRM.
|
|
@@ -389,7 +390,7 @@ async function fetchLimeObjects(
|
|
|
389
390
|
filter: string,
|
|
390
391
|
limit: number | null,
|
|
391
392
|
orderBy: Record<string, 'ASC' | 'DESC'>[]
|
|
392
|
-
): Promise<IncludedProperties[]
|
|
393
|
+
): Promise<WorkflowResponse<IncludedProperties[]>> {
|
|
393
394
|
const allResults: IncludedProperties[] = [];
|
|
394
395
|
const parsedFilter = JSON.parse(filter);
|
|
395
396
|
const unlimited = limit === null || limit === 0;
|
|
@@ -413,7 +414,10 @@ async function fetchLimeObjects(
|
|
|
413
414
|
orderBy: orderBy,
|
|
414
415
|
});
|
|
415
416
|
|
|
416
|
-
const
|
|
417
|
+
const batchResponse = await queryLimeobjects(this, q);
|
|
418
|
+
if (!batchResponse.success) return batchResponse.data;
|
|
419
|
+
|
|
420
|
+
const batch = batchResponse.data;
|
|
417
421
|
|
|
418
422
|
const collected = batch.objects.length;
|
|
419
423
|
if (collected === 0) break;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IExecuteFunctions,
|
|
3
|
+
INodeExecutionData,
|
|
3
4
|
INodeProperties,
|
|
4
5
|
NodeOperationError,
|
|
5
6
|
} from 'n8n-workflow';
|
|
@@ -125,15 +126,22 @@ export const properties: INodeProperties[] = [
|
|
|
125
126
|
*
|
|
126
127
|
* @public
|
|
127
128
|
*/
|
|
128
|
-
export async function execute(
|
|
129
|
+
export async function execute(
|
|
130
|
+
this: IExecuteFunctions,
|
|
131
|
+
i: number
|
|
132
|
+
): Promise<INodeExecutionData> {
|
|
129
133
|
const source = this.getNodeParameter('source', i) as string;
|
|
130
134
|
const id = this.getNodeParameter('identifier', i) as string;
|
|
131
135
|
|
|
132
136
|
if (source == 'byFile') {
|
|
133
137
|
const fileResponse = await getFileContent(this, id);
|
|
138
|
+
if (!fileResponse.success)
|
|
139
|
+
return {
|
|
140
|
+
json: fileResponse.data,
|
|
141
|
+
};
|
|
134
142
|
return {
|
|
135
143
|
json: {},
|
|
136
|
-
binary: { data: fileResponse },
|
|
144
|
+
binary: { data: fileResponse.data },
|
|
137
145
|
};
|
|
138
146
|
}
|
|
139
147
|
if (source == 'byLimeobject') {
|
|
@@ -146,11 +154,15 @@ export async function execute(this: IExecuteFunctions, i: number) {
|
|
|
146
154
|
id,
|
|
147
155
|
property
|
|
148
156
|
);
|
|
157
|
+
if (!fileResponse.success)
|
|
158
|
+
return {
|
|
159
|
+
json: fileResponse.data,
|
|
160
|
+
};
|
|
149
161
|
|
|
150
162
|
return {
|
|
151
163
|
json: {},
|
|
152
164
|
binary: {
|
|
153
|
-
data: fileResponse,
|
|
165
|
+
data: fileResponse.data,
|
|
154
166
|
},
|
|
155
167
|
};
|
|
156
168
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
|
|
2
2
|
|
|
3
3
|
import { getLimeobject, getProperties } from '../../../transport';
|
|
4
|
-
import { DATA_RESOURCE } from '../../../models';
|
|
4
|
+
import { DATA_RESOURCE, Limeobject } from '../../../models';
|
|
5
5
|
import { getFilePropertiesNames, processFileResponse } from '../../../utils';
|
|
6
|
-
|
|
6
|
+
import { WorkflowFileResponse } from '../../../../response';
|
|
7
7
|
/**
|
|
8
8
|
* Description and metadata for the "Get Single Object" operation in Lime CRM.
|
|
9
9
|
*
|
|
@@ -94,7 +94,10 @@ export const properties: INodeProperties[] = [
|
|
|
94
94
|
*
|
|
95
95
|
* @public
|
|
96
96
|
*/
|
|
97
|
-
export async function execute(
|
|
97
|
+
export async function execute(
|
|
98
|
+
this: IExecuteFunctions,
|
|
99
|
+
i: number
|
|
100
|
+
): Promise<WorkflowFileResponse<Limeobject>> {
|
|
98
101
|
const limetype = this.getNodeParameter('limetype', i) as string;
|
|
99
102
|
const objectId = this.getNodeParameter('objectId', i) as string;
|
|
100
103
|
const includeFileContent = this.getNodeParameter(
|
|
@@ -103,14 +106,20 @@ export async function execute(this: IExecuteFunctions, i: number) {
|
|
|
103
106
|
) as boolean;
|
|
104
107
|
|
|
105
108
|
const limeObjectResponse = await getLimeobject(this, limetype, objectId);
|
|
109
|
+
if (!limeObjectResponse.success) return { json: limeObjectResponse.data };
|
|
106
110
|
|
|
107
111
|
const propertiesResponse = await getProperties(this, limetype);
|
|
112
|
+
if (!propertiesResponse.success) return { json: propertiesResponse.data };
|
|
108
113
|
|
|
109
|
-
const fileProperties = getFilePropertiesNames(propertiesResponse);
|
|
110
|
-
|
|
114
|
+
const fileProperties = getFilePropertiesNames(propertiesResponse.data);
|
|
115
|
+
const fileResponse = await processFileResponse<Limeobject>(
|
|
111
116
|
this,
|
|
112
117
|
fileProperties,
|
|
113
|
-
limeObjectResponse,
|
|
118
|
+
limeObjectResponse.data,
|
|
114
119
|
includeFileContent
|
|
115
120
|
);
|
|
121
|
+
return {
|
|
122
|
+
json: fileResponse.json.data,
|
|
123
|
+
binary: fileResponse.binary,
|
|
124
|
+
};
|
|
116
125
|
}
|