@limetech/n8n-nodes-lime 0.5.0 → 2.5.0-dev.1
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 +4 -2
- package/.github/workflows/release.yml +8 -41
- package/.github/workflows/test-and-build.yml +1 -16
- package/.releaserc.json +2 -1
- package/CHANGELOG.md +155 -0
- package/Dockerfile +0 -21
- package/README.md +1 -1
- package/credentials/LimeCrmApi.credentials.ts +38 -1
- package/credentials/index.ts +2 -0
- package/eslint.config.mjs +2 -1
- package/knip.json +9 -0
- package/nodes/errorHandling.ts +60 -0
- package/nodes/fortnox/index.ts +6 -0
- package/nodes/fortnox/resources/customers/index.ts +18 -22
- package/nodes/fortnox/resources/customers/operations/create.operation.ts +12 -8
- package/nodes/fortnox/resources/customers/operations/delete.operation.ts +10 -15
- package/nodes/fortnox/resources/customers/operations/get.operation.ts +10 -15
- package/nodes/fortnox/resources/customers/operations/getAll.operation.ts +1 -2
- package/nodes/fortnox/resources/customers/operations/index.ts +5 -0
- package/nodes/fortnox/resources/customers/operations/update.operation.ts +30 -30
- package/nodes/fortnox/resources/invoice/index.ts +16 -18
- package/nodes/fortnox/resources/invoice/model.ts +0 -4
- package/nodes/fortnox/resources/invoice/operations/create.operation.ts +1 -2
- package/nodes/fortnox/resources/invoice/operations/get.operation.ts +10 -15
- package/nodes/fortnox/resources/invoice/operations/getAll.operation.ts +1 -2
- package/nodes/fortnox/resources/invoice/operations/index.ts +4 -0
- package/nodes/fortnox/resources/invoice/operations/update.operation.ts +11 -16
- package/nodes/fortnox/transport/index.ts +14 -11
- package/nodes/index.ts +4 -0
- package/nodes/lime-crm/LimeCrmNode.node.ts +89 -11
- package/nodes/lime-crm/LimeCrmTrigger.node.ts +75 -21
- package/nodes/lime-crm/index.ts +9 -0
- package/nodes/lime-crm/methods/getLimetypeProperties.ts +53 -8
- package/nodes/lime-crm/methods/getLimetypes.ts +15 -9
- package/nodes/lime-crm/methods/index.ts +6 -1
- package/nodes/lime-crm/methods/resourceMapping.ts +141 -0
- package/nodes/lime-crm/models/constants.ts +73 -0
- package/nodes/lime-crm/models/index.ts +21 -0
- package/nodes/lime-crm/models/limeobject.ts +13 -0
- package/nodes/lime-crm/models/limetype.ts +65 -0
- package/nodes/lime-crm/models/propertyTypes.ts +13 -0
- package/nodes/lime-crm/models/users.ts +46 -0
- package/nodes/lime-crm/models/webhook.ts +61 -0
- package/nodes/lime-crm/resources/admin/index.ts +94 -0
- package/nodes/lime-crm/resources/admin/operations/getManyUsers.operation.ts +174 -0
- package/nodes/lime-crm/resources/admin/operations/getSingleUser.operation.ts +112 -0
- package/nodes/lime-crm/resources/admin/operations/index.ts +8 -0
- package/nodes/lime-crm/resources/data/index.ts +77 -31
- package/nodes/lime-crm/resources/data/operations/{createSingleObject.ts → createSingleObject.operation.ts} +64 -54
- package/nodes/lime-crm/resources/data/operations/{deleteSingleObject.ts → deleteSingleObject.operation.ts} +39 -6
- package/nodes/lime-crm/resources/data/operations/{getManyObjects.ts → getManyObjects.operation.ts} +195 -48
- package/nodes/lime-crm/resources/data/operations/{getSingleFile.ts → getSingleFile.operation.ts} +47 -11
- package/nodes/lime-crm/resources/data/operations/{getSingleObject.ts → getSingleObject.operation.ts} +50 -8
- package/nodes/lime-crm/resources/data/operations/index.ts +24 -0
- package/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.ts +83 -61
- package/nodes/lime-crm/resources/metadata/index.ts +60 -16
- package/nodes/lime-crm/resources/metadata/operations/getAllLimetypes.operation.ts +18 -4
- package/nodes/lime-crm/resources/metadata/operations/{getSingleFileMetadata.ts → getSingleFileMetadata.operation.ts} +46 -26
- package/nodes/lime-crm/resources/metadata/operations/{getSingleLimetype.ts → getSingleLimetype.operation.ts} +30 -3
- package/nodes/lime-crm/resources/metadata/operations/index.ts +12 -0
- package/nodes/lime-crm/transport/commons.ts +90 -18
- package/nodes/lime-crm/transport/files.ts +161 -71
- package/nodes/lime-crm/transport/index.ts +35 -17
- package/nodes/lime-crm/transport/limeQuery.ts +43 -7
- package/nodes/lime-crm/transport/limeobjects.ts +113 -178
- package/nodes/lime-crm/transport/limetypes.ts +125 -48
- package/nodes/lime-crm/transport/users.ts +300 -0
- package/nodes/lime-crm/transport/webhooks.ts +97 -37
- package/nodes/lime-crm/{commons → utils}/files.ts +79 -26
- package/nodes/lime-crm/utils/hmac.ts +35 -0
- package/nodes/lime-crm/utils/index.ts +10 -0
- package/nodes/lime-crm/utils/webhook.ts +81 -0
- package/nodes/modules.ts +44 -0
- package/nodes/response.ts +54 -0
- package/package.json +21 -28
- package/tests/nodes/lime-crm/methods.spec.ts +91 -0
- package/tests/nodes/lime-crm/utils.spec.ts +273 -0
- package/typedoc.css +9 -0
- package/typedoc.json +19 -0
- package/.dockerignore +0 -1
- package/dist/credentials/FortnoxApi.credentials.d.ts +0 -9
- package/dist/credentials/FortnoxApi.credentials.js +0 -57
- package/dist/credentials/FortnoxApi.credentials.js.map +0 -1
- package/dist/credentials/LimeCrmApi.credentials.d.ts +0 -9
- package/dist/credentials/LimeCrmApi.credentials.js +0 -66
- package/dist/credentials/LimeCrmApi.credentials.js.map +0 -1
- package/dist/nodes/fortnox/Fortnox.node.d.ts +0 -5
- package/dist/nodes/fortnox/Fortnox.node.js +0 -95
- package/dist/nodes/fortnox/Fortnox.node.js.map +0 -1
- package/dist/nodes/fortnox/Fortnox.node.json +0 -18
- package/dist/nodes/fortnox/FortnoxTrigger.node.d.ts +0 -5
- package/dist/nodes/fortnox/FortnoxTrigger.node.js +0 -155
- package/dist/nodes/fortnox/FortnoxTrigger.node.js.map +0 -1
- package/dist/nodes/fortnox/FortnoxTrigger.node.json +0 -18
- package/dist/nodes/fortnox/commons.d.ts +0 -25
- package/dist/nodes/fortnox/commons.js +0 -44
- package/dist/nodes/fortnox/commons.js.map +0 -1
- package/dist/nodes/fortnox/fortnoxLogo.svg +0 -15
- package/dist/nodes/fortnox/model.d.ts +0 -20
- package/dist/nodes/fortnox/model.js +0 -3
- package/dist/nodes/fortnox/model.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/filterParameters.d.ts +0 -2
- package/dist/nodes/fortnox/resources/customers/filterParameters.js +0 -31
- package/dist/nodes/fortnox/resources/customers/filterParameters.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/index.d.ts +0 -20
- package/dist/nodes/fortnox/resources/customers/index.js +0 -87
- package/dist/nodes/fortnox/resources/customers/index.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/model.d.ts +0 -99
- package/dist/nodes/fortnox/resources/customers/model.js +0 -3
- package/dist/nodes/fortnox/resources/customers/model.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.d.ts +0 -12
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.js +0 -283
- package/dist/nodes/fortnox/resources/customers/operations/create.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.d.ts +0 -10
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js +0 -45
- package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.d.ts +0 -11
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.js +0 -45
- package/dist/nodes/fortnox/resources/customers/operations/get.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.d.ts +0 -11
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js +0 -68
- package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.d.ts +0 -12
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.js +0 -276
- package/dist/nodes/fortnox/resources/customers/operations/update.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/customers/sortParameters.d.ts +0 -2
- package/dist/nodes/fortnox/resources/customers/sortParameters.js +0 -30
- package/dist/nodes/fortnox/resources/customers/sortParameters.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/filterParameters.d.ts +0 -2
- package/dist/nodes/fortnox/resources/invoice/filterParameters.js +0 -72
- package/dist/nodes/fortnox/resources/invoice/filterParameters.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/index.d.ts +0 -20
- package/dist/nodes/fortnox/resources/invoice/index.js +0 -81
- package/dist/nodes/fortnox/resources/invoice/index.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.d.ts +0 -2
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js +0 -193
- package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/model.d.ts +0 -150
- package/dist/nodes/fortnox/resources/invoice/model.js +0 -3
- package/dist/nodes/fortnox/resources/invoice/model.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.d.ts +0 -11
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js +0 -64
- package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.d.ts +0 -11
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js +0 -44
- package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.d.ts +0 -11
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js +0 -92
- package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js.map +0 -1
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.d.ts +0 -11
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js +0 -71
- package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js.map +0 -1
- package/dist/nodes/fortnox/transport/errorCodes.d.ts +0 -1
- package/dist/nodes/fortnox/transport/errorCodes.js +0 -50
- package/dist/nodes/fortnox/transport/errorCodes.js.map +0 -1
- package/dist/nodes/fortnox/transport/index.d.ts +0 -4
- package/dist/nodes/fortnox/transport/index.js +0 -77
- package/dist/nodes/fortnox/transport/index.js.map +0 -1
- package/dist/nodes/lime-crm/LimeCrm.node.json +0 -18
- package/dist/nodes/lime-crm/LimeCrmNode.node.d.ts +0 -14
- package/dist/nodes/lime-crm/LimeCrmNode.node.js +0 -126
- package/dist/nodes/lime-crm/LimeCrmNode.node.js.map +0 -1
- package/dist/nodes/lime-crm/LimeCrmTrigger.node.d.ts +0 -18
- package/dist/nodes/lime-crm/LimeCrmTrigger.node.js +0 -215
- package/dist/nodes/lime-crm/LimeCrmTrigger.node.js.map +0 -1
- package/dist/nodes/lime-crm/assets/lime-crm.svg +0 -1
- package/dist/nodes/lime-crm/commons/constants.d.ts +0 -5
- package/dist/nodes/lime-crm/commons/constants.js +0 -9
- package/dist/nodes/lime-crm/commons/constants.js.map +0 -1
- package/dist/nodes/lime-crm/commons/hmac.d.ts +0 -1
- package/dist/nodes/lime-crm/commons/hmac.js +0 -11
- package/dist/nodes/lime-crm/commons/hmac.js.map +0 -1
- package/dist/nodes/lime-crm/commons/index.d.ts +0 -3
- package/dist/nodes/lime-crm/commons/index.js +0 -12
- package/dist/nodes/lime-crm/commons/index.js.map +0 -1
- package/dist/nodes/lime-crm/commons/limetype.d.ts +0 -10
- package/dist/nodes/lime-crm/commons/limetype.js +0 -3
- package/dist/nodes/lime-crm/commons/limetype.js.map +0 -1
- package/dist/nodes/lime-crm/commons/task.d.ts +0 -14
- package/dist/nodes/lime-crm/commons/task.js +0 -48
- package/dist/nodes/lime-crm/commons/task.js.map +0 -1
- package/dist/nodes/lime-crm/commons/webhook.d.ts +0 -20
- package/dist/nodes/lime-crm/commons/webhook.js +0 -30
- package/dist/nodes/lime-crm/commons/webhook.js.map +0 -1
- package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.d.ts +0 -5
- package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.js +0 -11
- package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.js.map +0 -1
- package/dist/nodes/lime-crm/methods/getLimeTypeProperties.d.ts +0 -2
- package/dist/nodes/lime-crm/methods/getLimeTypeProperties.js +0 -20
- package/dist/nodes/lime-crm/methods/getLimeTypeProperties.js.map +0 -1
- package/dist/nodes/lime-crm/methods/getLimeTypes.d.ts +0 -2
- package/dist/nodes/lime-crm/methods/getLimeTypes.js +0 -20
- package/dist/nodes/lime-crm/methods/getLimeTypes.js.map +0 -1
- package/dist/nodes/lime-crm/methods/index.d.ts +0 -3
- package/dist/nodes/lime-crm/methods/index.js +0 -10
- package/dist/nodes/lime-crm/methods/index.js.map +0 -1
- package/dist/nodes/lime-crm/resources/erpConnector/index.d.ts +0 -23
- package/dist/nodes/lime-crm/resources/erpConnector/index.js +0 -67
- package/dist/nodes/lime-crm/resources/erpConnector/index.js.map +0 -1
- package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.d.ts +0 -26
- package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.js +0 -65
- package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.js +0 -220
- package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/erpConnector/transform.d.ts +0 -15
- package/dist/nodes/lime-crm/resources/erpConnector/transform.js +0 -11
- package/dist/nodes/lime-crm/resources/erpConnector/transform.js.map +0 -1
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.d.ts +0 -4
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.js +0 -7
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.js.map +0 -1
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.d.ts +0 -37
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.js +0 -124
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.js.map +0 -1
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.d.ts +0 -1
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.js +0 -6
- package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeObject/index.d.ts +0 -14
- package/dist/nodes/lime-crm/resources/limeObject/index.js +0 -88
- package/dist/nodes/lime-crm/resources/limeObject/index.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.js +0 -139
- package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.js +0 -51
- package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.js +0 -103
- package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.js +0 -51
- package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.js +0 -103
- package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.js +0 -149
- package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeQuery/index.d.ts +0 -6
- package/dist/nodes/lime-crm/resources/limeQuery/index.js +0 -66
- package/dist/nodes/lime-crm/resources/limeQuery/index.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.js +0 -191
- package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeType/index.d.ts +0 -20
- package/dist/nodes/lime-crm/resources/limeType/index.js +0 -81
- package/dist/nodes/lime-crm/resources/limeType/index.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.d.ts +0 -11
- package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.js +0 -36
- package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.d.ts +0 -9
- package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.js +0 -36
- package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.js.map +0 -1
- package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.d.ts +0 -10
- package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.js +0 -15
- package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.js.map +0 -1
- package/dist/nodes/lime-crm/transport/commons.d.ts +0 -5
- package/dist/nodes/lime-crm/transport/commons.js +0 -33
- package/dist/nodes/lime-crm/transport/commons.js.map +0 -1
- package/dist/nodes/lime-crm/transport/erpConnector.d.ts +0 -9
- package/dist/nodes/lime-crm/transport/erpConnector.js +0 -11
- package/dist/nodes/lime-crm/transport/erpConnector.js.map +0 -1
- package/dist/nodes/lime-crm/transport/index.d.ts +0 -6
- package/dist/nodes/lime-crm/transport/index.js +0 -24
- package/dist/nodes/lime-crm/transport/index.js.map +0 -1
- package/dist/nodes/lime-crm/transport/limeQuery.d.ts +0 -10
- package/dist/nodes/lime-crm/transport/limeQuery.js +0 -15
- package/dist/nodes/lime-crm/transport/limeQuery.js.map +0 -1
- package/dist/nodes/lime-crm/transport/limeobjects.d.ts +0 -7
- package/dist/nodes/lime-crm/transport/limeobjects.js +0 -134
- package/dist/nodes/lime-crm/transport/limeobjects.js.map +0 -1
- package/dist/nodes/lime-crm/transport/limetypes.d.ts +0 -6
- package/dist/nodes/lime-crm/transport/limetypes.js +0 -54
- package/dist/nodes/lime-crm/transport/limetypes.js.map +0 -1
- package/dist/nodes/lime-crm/transport/task.d.ts +0 -13
- package/dist/nodes/lime-crm/transport/task.js +0 -13
- package/dist/nodes/lime-crm/transport/task.js.map +0 -1
- package/dist/nodes/lime-crm/transport/webhooks.d.ts +0 -16
- package/dist/nodes/lime-crm/transport/webhooks.js +0 -43
- package/dist/nodes/lime-crm/transport/webhooks.js.map +0 -1
- package/dist/nodes/nodeResponse.d.ts +0 -12
- package/dist/nodes/nodeResponse.js +0 -3
- package/dist/nodes/nodeResponse.js.map +0 -1
- package/dist/package.json +0 -75
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/docker-compose.yml +0 -52
- package/nodes/lime-crm/commons/constants.ts +0 -9
- package/nodes/lime-crm/commons/hmac.ts +0 -13
- package/nodes/lime-crm/commons/index.ts +0 -10
- package/nodes/lime-crm/commons/task.ts +0 -55
- package/nodes/lime-crm/commons/webhook.ts +0 -68
- package/nodes/lime-crm/methods/getEntitiesForErpSystem.ts +0 -11
- package/nodes/lime-crm/model.ts +0 -22
- package/nodes/lime-crm/resources/erpConnector/index.ts +0 -43
- package/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.ts +0 -69
- package/nodes/lime-crm/resources/erpConnector/operations/transform.operation.ts +0 -274
- package/nodes/lime-crm/resources/erpConnector/transform.ts +0 -49
- package/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.ts +0 -18
- package/nodes/lime-crm/resources/erpConnector/transformers/fortnox.ts +0 -201
- package/nodes/lime-crm/resources/erpConnector/transformers/index.ts +0 -1
- package/nodes/lime-crm/transport/erpConnector.ts +0 -21
- package/nodes/lime-crm/transport/task.ts +0 -32
- package/nodes/nodeResponse.ts +0 -13
- package/restore_script/README +0 -42
- package/restore_script/api_key_download.txt +0 -0
- 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/tests/fixtures/fortnox.ts +0 -182
- package/tests/transform.spec.ts +0 -187
|
@@ -1,9 +1,27 @@
|
|
|
1
|
-
import { LIME_CRM_API_CREDENTIAL_KEY } from '../
|
|
2
|
-
import { IAllExecuteFunctions } from 'n8n-workflow';
|
|
3
|
-
import {
|
|
1
|
+
import { LIME_CRM_API_CREDENTIAL_KEY } from '../models';
|
|
2
|
+
import { IAllExecuteFunctions, JsonObject } from 'n8n-workflow';
|
|
3
|
+
import { WorkflowErrorContext, handleWorkflowError } from '../utils';
|
|
4
|
+
import { APIResponse, SuccessResponse } from '../../response';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
/**
|
|
7
|
+
* HTTP methods supported by the Lime CRM API.
|
|
8
|
+
*
|
|
9
|
+
* @group Transport
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
6
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Return a copy of the given object with specified keys removed.
|
|
16
|
+
*
|
|
17
|
+
* @param data - The source object
|
|
18
|
+
* @param keys - An array of keys to remove from the object
|
|
19
|
+
*
|
|
20
|
+
* @returns A new object with the specified keys omitted
|
|
21
|
+
*
|
|
22
|
+
* @public
|
|
23
|
+
* @group Transport
|
|
24
|
+
*/
|
|
7
25
|
export function removeKeys<T extends object, K extends keyof T>(
|
|
8
26
|
data: T,
|
|
9
27
|
keys: K[]
|
|
@@ -15,6 +33,26 @@ export function removeKeys<T extends object, K extends keyof T>(
|
|
|
15
33
|
return obj;
|
|
16
34
|
}
|
|
17
35
|
|
|
36
|
+
export function prepareResponseWithoutKeys<T extends object, K extends keyof T>(
|
|
37
|
+
response: SuccessResponse<T>,
|
|
38
|
+
keys: K[]
|
|
39
|
+
): SuccessResponse<Omit<T, K>> {
|
|
40
|
+
return {
|
|
41
|
+
success: true,
|
|
42
|
+
data: removeKeys(response.data, keys),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Retrieve the base URL for the Lime CRM API from stored credentials.
|
|
48
|
+
*
|
|
49
|
+
* @param context - The n8n execution context
|
|
50
|
+
*
|
|
51
|
+
* @returns The Lime CRM API base URL as a string
|
|
52
|
+
*
|
|
53
|
+
* @internal
|
|
54
|
+
* @group Transport
|
|
55
|
+
*/
|
|
18
56
|
async function getLimeUrl(context: IAllExecuteFunctions): Promise<string> {
|
|
19
57
|
const credentials = await context.getCredentials(
|
|
20
58
|
LIME_CRM_API_CREDENTIAL_KEY
|
|
@@ -22,24 +60,55 @@ async function getLimeUrl(context: IAllExecuteFunctions): Promise<string> {
|
|
|
22
60
|
return credentials.url as string;
|
|
23
61
|
}
|
|
24
62
|
|
|
63
|
+
/**
|
|
64
|
+
* CallLimeAPI arguments wrapped in a single interface to enable keyword-style
|
|
65
|
+
* arguments.
|
|
66
|
+
*
|
|
67
|
+
* @property method - The HTTP method to use (GET, POST, etc.)
|
|
68
|
+
* @property url - The API endpoint URL (relative path)
|
|
69
|
+
* @property requestOptions - Optional additional request options (headers, body, query, etc.)
|
|
70
|
+
* @property json - Whether to parse the response as JSON.
|
|
71
|
+
* @property errorMetadata - Additional information we want to pass to message in case of error
|
|
72
|
+
*
|
|
73
|
+
* @public
|
|
74
|
+
* @group Transport
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
interface LimeAPIArguments {
|
|
78
|
+
method: HTTPMethod;
|
|
79
|
+
url: string;
|
|
80
|
+
requestOptions?: Record<string, unknown>;
|
|
81
|
+
json?: boolean;
|
|
82
|
+
errorMetadata?: Record<string, unknown>;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Make an authenticated HTTP request to the Lime CRM API and returns a structured response.
|
|
87
|
+
*
|
|
88
|
+
* @typeParam T - The expected type of the API response data
|
|
89
|
+
* @param nodeContext - The n8n execution context
|
|
90
|
+
* @param options - {@link LimeAPIArguments} object
|
|
91
|
+
*
|
|
92
|
+
* @returns API data or response details
|
|
93
|
+
*
|
|
94
|
+
* @public
|
|
95
|
+
* @group Transport
|
|
96
|
+
*/
|
|
25
97
|
export async function callLimeApi<T>(
|
|
26
98
|
nodeContext: IAllExecuteFunctions,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
options?: Record<string, unknown>,
|
|
30
|
-
json = true
|
|
31
|
-
): Promise<NodeResponse<T>> {
|
|
99
|
+
options: LimeAPIArguments
|
|
100
|
+
): Promise<APIResponse<T>> {
|
|
32
101
|
try {
|
|
33
|
-
const response
|
|
102
|
+
const response =
|
|
34
103
|
await nodeContext.helpers.requestWithAuthentication.call(
|
|
35
104
|
nodeContext,
|
|
36
105
|
LIME_CRM_API_CREDENTIAL_KEY,
|
|
37
106
|
{
|
|
38
|
-
method: method,
|
|
39
|
-
url: url,
|
|
40
|
-
json: json,
|
|
107
|
+
method: options.method,
|
|
108
|
+
url: options.url,
|
|
109
|
+
json: options.json || true,
|
|
41
110
|
baseURL: await getLimeUrl(nodeContext),
|
|
42
|
-
...options,
|
|
111
|
+
...options.requestOptions,
|
|
43
112
|
}
|
|
44
113
|
);
|
|
45
114
|
return {
|
|
@@ -47,11 +116,14 @@ export async function callLimeApi<T>(
|
|
|
47
116
|
data: response,
|
|
48
117
|
};
|
|
49
118
|
} catch (error) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
error: error instanceof Error ? error.message : String(error),
|
|
119
|
+
const errorContext: WorkflowErrorContext = {
|
|
120
|
+
message: error instanceof Error ? error.message : String(error),
|
|
53
121
|
status: error?.cause?.status,
|
|
54
|
-
metadata:
|
|
122
|
+
metadata: {
|
|
123
|
+
...options.requestOptions,
|
|
124
|
+
...options.errorMetadata,
|
|
125
|
+
} as JsonObject,
|
|
55
126
|
};
|
|
127
|
+
return handleWorkflowError(nodeContext, errorContext, true);
|
|
56
128
|
}
|
|
57
129
|
}
|
|
@@ -1,17 +1,51 @@
|
|
|
1
1
|
import { callLimeApi, getLimeobject } from '.';
|
|
2
2
|
import { IExecuteFunctions, IBinaryData, BINARY_ENCODING } from 'n8n-workflow';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import { prepareResponseWithoutKeys } from './commons';
|
|
4
|
+
import {
|
|
5
|
+
getFilenameFromHeader,
|
|
6
|
+
handleWorkflowError,
|
|
7
|
+
setFilename,
|
|
8
|
+
} from '../utils';
|
|
9
|
+
import { APIResponse } from '../../response';
|
|
10
|
+
/**
|
|
11
|
+
* Endpoint path for Lime CRM file API.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
* @group Transport
|
|
15
|
+
*/
|
|
7
16
|
const LIME_FILE_URL = '/api/v1/file/';
|
|
8
17
|
|
|
9
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Response from Lime file API containing HTTP headers and raw file body.
|
|
20
|
+
*
|
|
21
|
+
* @property headers - HTTP headers returned by the API
|
|
22
|
+
* @property body - Raw file body as a Buffer
|
|
23
|
+
*
|
|
24
|
+
* @public
|
|
25
|
+
* @group Transport
|
|
26
|
+
*/
|
|
27
|
+
export interface FileApiResponse {
|
|
10
28
|
headers: Record<string, string | string[] | undefined>;
|
|
11
29
|
body: Buffer;
|
|
12
30
|
}
|
|
13
31
|
|
|
14
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Metadata about a file stored in Lime CRM.
|
|
34
|
+
*
|
|
35
|
+
* @property filename - Name of the file
|
|
36
|
+
* @property id - File ID in Lime CRM
|
|
37
|
+
* @property size - File size in bytes
|
|
38
|
+
* @property content_type - MIME type of the file
|
|
39
|
+
* @property extension - File extension
|
|
40
|
+
* @property created_by - ID of the user who created the file
|
|
41
|
+
* @property locked_by - ID of the user who locked the file
|
|
42
|
+
* @property last_modified - Last modified timestamp
|
|
43
|
+
* @property _links - Optional links returned by Lime API
|
|
44
|
+
*
|
|
45
|
+
* @public
|
|
46
|
+
* @group Transport
|
|
47
|
+
*/
|
|
48
|
+
export type FileMetadata = {
|
|
15
49
|
filename: string;
|
|
16
50
|
id: number;
|
|
17
51
|
size: number;
|
|
@@ -21,74 +55,101 @@ interface FileMetadata {
|
|
|
21
55
|
locked_by: number;
|
|
22
56
|
last_modified: string;
|
|
23
57
|
_links?: { [key: string]: { href: string } };
|
|
24
|
-
}
|
|
25
|
-
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Retrieve metadata for a file by its ID.
|
|
62
|
+
*
|
|
63
|
+
* @param nodeContext - n8n execution context
|
|
64
|
+
* @param id - The ID of the file
|
|
65
|
+
* @returns File metadata
|
|
66
|
+
*
|
|
67
|
+
* @public
|
|
68
|
+
* @group Transport
|
|
69
|
+
*/
|
|
26
70
|
export async function getFileMetadata(
|
|
27
71
|
nodeContext: IExecuteFunctions,
|
|
28
72
|
id: string | number
|
|
29
|
-
): Promise<
|
|
73
|
+
): Promise<APIResponse<FileMetadata>> {
|
|
30
74
|
const url = `${LIME_FILE_URL}${id}/`;
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
75
|
+
const fileMetadataResponse = await callLimeApi<FileMetadata>(nodeContext, {
|
|
76
|
+
method: 'GET',
|
|
77
|
+
url: url,
|
|
78
|
+
});
|
|
35
79
|
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
80
|
+
if (!fileMetadataResponse.success) return fileMetadataResponse;
|
|
81
|
+
|
|
82
|
+
return prepareResponseWithoutKeys(fileMetadataResponse, ['_links']);
|
|
40
83
|
}
|
|
41
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Retrieve file metadata for a specific property of a Lime object.
|
|
87
|
+
*
|
|
88
|
+
* @param nodeContext - n8n execution context
|
|
89
|
+
* @param limetype - Name of the Limetype
|
|
90
|
+
* @param id - The Lime object ID
|
|
91
|
+
* @param fileTypeProperty - The property name holding the file reference
|
|
92
|
+
* @returns File metadata
|
|
93
|
+
*
|
|
94
|
+
* @public
|
|
95
|
+
* @group Transport
|
|
96
|
+
*/
|
|
42
97
|
export async function getFileMetadataByLimeobject(
|
|
43
98
|
nodeContext: IExecuteFunctions,
|
|
44
99
|
limetype: string,
|
|
45
100
|
id: string,
|
|
46
101
|
fileTypeProperty: string
|
|
47
|
-
): Promise<
|
|
102
|
+
): Promise<APIResponse<FileMetadata>> {
|
|
48
103
|
const objectResponse = await getLimeobject(nodeContext, limetype, id);
|
|
49
|
-
if (!objectResponse.success)
|
|
50
|
-
|
|
51
|
-
}
|
|
104
|
+
if (!objectResponse.success) return objectResponse;
|
|
105
|
+
|
|
52
106
|
const fileId = objectResponse.data[fileTypeProperty] as string | undefined;
|
|
53
107
|
|
|
54
108
|
if (!fileId) {
|
|
55
|
-
return
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
109
|
+
return handleWorkflowError(
|
|
110
|
+
nodeContext,
|
|
111
|
+
{
|
|
112
|
+
message:
|
|
113
|
+
'The specified Limeobject does not have an associated file',
|
|
114
|
+
},
|
|
115
|
+
true
|
|
116
|
+
);
|
|
59
117
|
}
|
|
60
118
|
|
|
61
|
-
const
|
|
62
|
-
if (!
|
|
63
|
-
return metadataResponse;
|
|
64
|
-
}
|
|
119
|
+
const fileMetadataResponse = await getFileMetadata(nodeContext, fileId);
|
|
120
|
+
if (!fileMetadataResponse.success) return fileMetadataResponse;
|
|
65
121
|
|
|
66
|
-
return
|
|
67
|
-
success: true,
|
|
68
|
-
data: removeKeys(metadataResponse.data, ['_links']),
|
|
69
|
-
};
|
|
122
|
+
return prepareResponseWithoutKeys(fileMetadataResponse, ['_links']);
|
|
70
123
|
}
|
|
71
124
|
|
|
125
|
+
/**
|
|
126
|
+
* Download file content by file ID and prepare binary data for n8n nodes.
|
|
127
|
+
*
|
|
128
|
+
* @param nodeContext - n8n execution context
|
|
129
|
+
* @param id - The ID of the file
|
|
130
|
+
* @returns prepared binary data
|
|
131
|
+
*
|
|
132
|
+
* @public
|
|
133
|
+
* @group Transport
|
|
134
|
+
*/
|
|
72
135
|
export async function getFileContent(
|
|
73
136
|
nodeContext: IExecuteFunctions,
|
|
74
137
|
id: string | number
|
|
75
|
-
): Promise<
|
|
138
|
+
): Promise<APIResponse<IBinaryData>> {
|
|
76
139
|
const url = `${LIME_FILE_URL}${id}/contents/`;
|
|
77
140
|
|
|
78
|
-
const response = await callLimeApi<FileApiResponse>(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
{
|
|
141
|
+
const response = await callLimeApi<FileApiResponse>(nodeContext, {
|
|
142
|
+
method: 'GET',
|
|
143
|
+
url: url,
|
|
144
|
+
requestOptions: {
|
|
83
145
|
encoding: null,
|
|
84
146
|
responseType: 'stream',
|
|
85
147
|
resolveWithFullResponse: true,
|
|
86
148
|
},
|
|
87
|
-
false
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
149
|
+
json: false,
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
if (!response.success) return response;
|
|
92
153
|
|
|
93
154
|
const fileName =
|
|
94
155
|
getFilenameFromHeader(response.data.headers) || `file_${id}`;
|
|
@@ -103,53 +164,82 @@ export async function getFileContent(
|
|
|
103
164
|
};
|
|
104
165
|
}
|
|
105
166
|
|
|
167
|
+
/**
|
|
168
|
+
* Download file content for a specific property of a Lime object.
|
|
169
|
+
*
|
|
170
|
+
* @param nodeContext - n8n execution context
|
|
171
|
+
* @param limetype - Name of the Limetype
|
|
172
|
+
* @param id - The Lime object ID
|
|
173
|
+
* @param fileTypeProperty - The property name holding the file reference
|
|
174
|
+
* @returns Prepared binary data
|
|
175
|
+
*
|
|
176
|
+
* @public
|
|
177
|
+
* @group Transport
|
|
178
|
+
*/
|
|
106
179
|
export async function getFileContentByLimetype(
|
|
107
180
|
nodeContext: IExecuteFunctions,
|
|
108
181
|
limetype: string,
|
|
109
182
|
id: string,
|
|
110
183
|
fileTypeProperty: string
|
|
111
|
-
): Promise<
|
|
112
|
-
const
|
|
113
|
-
if (!
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
184
|
+
): Promise<APIResponse<IBinaryData>> {
|
|
185
|
+
const limeObjectResponse = await getLimeobject(nodeContext, limetype, id);
|
|
186
|
+
if (!limeObjectResponse.success) return limeObjectResponse;
|
|
187
|
+
|
|
188
|
+
const fileId = limeObjectResponse.data[fileTypeProperty] as
|
|
189
|
+
| string
|
|
190
|
+
| undefined;
|
|
117
191
|
|
|
118
192
|
if (!fileId) {
|
|
119
|
-
return
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
193
|
+
return handleWorkflowError(
|
|
194
|
+
nodeContext,
|
|
195
|
+
{
|
|
196
|
+
message:
|
|
197
|
+
'The specified Limeobject does not have an associated file.',
|
|
198
|
+
},
|
|
199
|
+
true
|
|
200
|
+
);
|
|
123
201
|
}
|
|
124
202
|
|
|
125
203
|
return await getFileContent(nodeContext, fileId);
|
|
126
204
|
}
|
|
127
205
|
|
|
206
|
+
/**
|
|
207
|
+
* Create a file in Lime CRM using binary data.
|
|
208
|
+
*
|
|
209
|
+
* @param nodeContext - n8n execution context
|
|
210
|
+
* @param binary - The binary data to upload
|
|
211
|
+
* @param fallbackFileName - File name to use if `binary.fileName` is missing
|
|
212
|
+
* @returns Created file metadata
|
|
213
|
+
*
|
|
214
|
+
* @public
|
|
215
|
+
* @group Transport
|
|
216
|
+
*/
|
|
128
217
|
export async function createFile(
|
|
129
218
|
nodeContext: IExecuteFunctions,
|
|
130
219
|
binary: IBinaryData,
|
|
131
220
|
fallbackFileName: string
|
|
132
|
-
): Promise<
|
|
133
|
-
const response = await callLimeApi<FileMetadata>(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
{
|
|
221
|
+
): Promise<APIResponse<FileMetadata>> {
|
|
222
|
+
const response = await callLimeApi<FileMetadata>(nodeContext, {
|
|
223
|
+
method: 'POST',
|
|
224
|
+
url: LIME_FILE_URL,
|
|
225
|
+
requestOptions: {
|
|
138
226
|
body: Buffer.from(binary.data, BINARY_ENCODING),
|
|
139
227
|
headers: {
|
|
140
228
|
'Content-Disposition': `;filename*="UTF-8''${encodeURIComponent(binary.fileName || fallbackFileName)}"`,
|
|
141
229
|
'Content-Type': binary.mimeType,
|
|
142
230
|
},
|
|
143
|
-
}
|
|
144
|
-
);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
if (!response.success)
|
|
234
|
+
return {
|
|
235
|
+
success: false,
|
|
236
|
+
data: {
|
|
237
|
+
error: {
|
|
238
|
+
message: response.data.error.message,
|
|
239
|
+
status: response.data.error.status,
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
};
|
|
150
243
|
|
|
151
|
-
return
|
|
152
|
-
success: true,
|
|
153
|
-
data: removeKeys(response.data, ['_links']),
|
|
154
|
-
};
|
|
244
|
+
return prepareResponseWithoutKeys(response, ['_links']);
|
|
155
245
|
}
|
|
@@ -1,25 +1,43 @@
|
|
|
1
|
+
export { HTTPMethod, callLimeApi, removeKeys } from './commons';
|
|
1
2
|
export {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
FileApiResponse,
|
|
4
|
+
FileMetadata,
|
|
5
|
+
createFile,
|
|
6
|
+
getFileContent,
|
|
7
|
+
getFileContentByLimetype,
|
|
8
|
+
getFileMetadata,
|
|
9
|
+
getFileMetadataByLimeobject,
|
|
10
|
+
} from './files';
|
|
9
11
|
export {
|
|
12
|
+
FetchManyLimeobjectsApiResponse,
|
|
13
|
+
LimeobjectCrmApiResponse,
|
|
10
14
|
createLimeobject,
|
|
11
15
|
deleteLimeobject,
|
|
12
16
|
updateLimeobject,
|
|
13
17
|
getLimeobject,
|
|
14
|
-
fetchManyLimeobjects,
|
|
15
18
|
} from './limeobjects';
|
|
16
|
-
export { startCreateOrUpdateObjectsTask } from './erpConnector';
|
|
17
|
-
export { queryLimeobjects } from './limeQuery';
|
|
18
19
|
export {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
IncludedProperties,
|
|
21
|
+
QueryResponse,
|
|
22
|
+
queryLimeobjects,
|
|
23
|
+
} from './limeQuery';
|
|
24
|
+
export {
|
|
25
|
+
LimetypeCrmApiResponse,
|
|
26
|
+
LimetypePropertiesApiResponse,
|
|
27
|
+
LimetypePropertyApiResponse,
|
|
28
|
+
LimetypesCrmApiResponse,
|
|
29
|
+
getLimetypesFromApi,
|
|
30
|
+
getProperties,
|
|
31
|
+
} from './limetypes';
|
|
32
|
+
export {
|
|
33
|
+
ApiResponseWebhook,
|
|
34
|
+
createSubscription,
|
|
35
|
+
deleteSubscription,
|
|
36
|
+
getSubscription,
|
|
37
|
+
listSubscriptionsWithExistingData,
|
|
38
|
+
} from './webhooks';
|
|
39
|
+
export {
|
|
40
|
+
fetchManyUsers,
|
|
41
|
+
fetchSingleUserById,
|
|
42
|
+
fetchSingleUserByLimeobjectId,
|
|
43
|
+
} from './users';
|
|
@@ -1,26 +1,62 @@
|
|
|
1
1
|
import { IAllExecuteFunctions } from 'n8n-workflow';
|
|
2
|
-
import { NodeResponse } from '../../nodeResponse';
|
|
3
2
|
import { callLimeApi } from './commons';
|
|
4
|
-
|
|
3
|
+
import { APIResponsePrimitiveValue } from '../models';
|
|
4
|
+
import { APIResponse } from '../../response';
|
|
5
|
+
/**
|
|
6
|
+
* Endpoint path for Lime CRM Lime Query API.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
* @group Transport
|
|
10
|
+
*/
|
|
5
11
|
const LIME_QUERY_URL = '/api/v1/query/';
|
|
6
12
|
|
|
7
|
-
|
|
8
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Structure of included properties returned by a query.
|
|
15
|
+
*
|
|
16
|
+
* The properties can themselves contain nested objects, primitive values, or nulls.
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
19
|
+
* @group Transport
|
|
20
|
+
*/
|
|
21
|
+
export interface IncludedProperties {
|
|
22
|
+
[key: string]: IncludedProperties | APIResponsePrimitiveValue;
|
|
9
23
|
}
|
|
10
24
|
|
|
25
|
+
/**
|
|
26
|
+
* The structure of a Lime CRM query API response.
|
|
27
|
+
*
|
|
28
|
+
* @property objects - An array of returned Limeobjects with their properties represented by a {@link IncludedProperties}
|
|
29
|
+
*
|
|
30
|
+
* @public
|
|
31
|
+
* @group Transport
|
|
32
|
+
*/
|
|
11
33
|
export interface QueryResponse {
|
|
12
34
|
objects: IncludedProperties[];
|
|
13
35
|
}
|
|
14
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Execute a Lime CRM query through the API.
|
|
39
|
+
*
|
|
40
|
+
* @param nodeContext - The n8n execution context
|
|
41
|
+
* @param q - The query string to execute
|
|
42
|
+
* @returns Query results
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
* @group Transport
|
|
46
|
+
*/
|
|
15
47
|
export async function queryLimeobjects(
|
|
16
48
|
nodeContext: IAllExecuteFunctions,
|
|
17
49
|
q: string
|
|
18
|
-
): Promise<
|
|
50
|
+
): Promise<APIResponse<QueryResponse>> {
|
|
19
51
|
const queryParameters = {
|
|
20
52
|
q: q,
|
|
21
53
|
};
|
|
22
54
|
|
|
23
|
-
return await callLimeApi(nodeContext,
|
|
24
|
-
|
|
55
|
+
return await callLimeApi(nodeContext, {
|
|
56
|
+
method: 'GET',
|
|
57
|
+
url: LIME_QUERY_URL,
|
|
58
|
+
requestOptions: {
|
|
59
|
+
qs: queryParameters,
|
|
60
|
+
},
|
|
25
61
|
});
|
|
26
62
|
}
|