UNPKG

n8n-nodes-orderful

Version:
178 lines 7.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OrderfulPoller = void 0; const n8n_workflow_1 = require("n8n-workflow"); class OrderfulPoller { constructor() { this.description = { displayName: 'Orderful Poller', name: 'orderfulPoller', icon: 'file:orderful.svg', group: ['input'], version: 1, subtitle: '={{$parameter["operation"]}}', description: 'Poll for new transactions from Orderful', defaults: { name: 'Orderful Poller', }, inputs: ["main"], outputs: ["main"], credentials: [ { name: 'orderfulApi', required: true, }, ], requestDefaults: { baseURL: '={{$credentials.baseUrl}}', headers: { Accept: 'application/json', 'Content-Type': 'application/json', Authorization: 'Bearer {{$credentials.apiKey}}', }, }, properties: [ { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, options: [ { name: 'Get Transactions', value: 'getTransactions', description: 'Get transactions from poller bucket', action: 'Get transactions from poller bucket', }, { name: 'Remove Transactions', value: 'removeTransactions', description: 'Remove transactions from bucket', action: 'Remove transactions from bucket', }, ], default: 'getTransactions', }, { displayName: 'Bucket Name', name: 'bucketName', type: 'string', default: 'default', description: 'Name of the poller bucket', required: true, }, { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', displayOptions: { show: { operation: ['getTransactions'], }, }, default: {}, options: [ { displayName: 'Limit', name: 'limit', type: 'number', typeOptions: { minValue: 1, }, default: 50, description: 'Max number of results to return', }, { displayName: 'Transaction Type', name: 'transactionType', type: 'string', default: '', description: 'Filter by transaction type (e.g., 850, 810)', }, { displayName: 'Partner ID', name: 'partnerId', type: 'string', default: '', description: 'Filter by trading partner ID', }, ], }, { displayName: 'Transaction IDs', name: 'transactionIds', type: 'string', displayOptions: { show: { operation: ['removeTransactions'], }, }, default: '', description: 'Comma-separated list of transaction IDs to remove from bucket', required: true, }, ], }; } async execute() { const items = this.getInputData(); const returnData = []; for (let i = 0; i < items.length; i++) { try { const operation = this.getNodeParameter('operation', i); const bucketName = this.getNodeParameter('bucketName', i); let responseData = {}; if (operation === 'getTransactions') { const additionalFields = this.getNodeParameter('additionalFields', i); const qs = {}; if (additionalFields.limit) { qs.limit = additionalFields.limit; } if (additionalFields.transactionType) { qs.type = additionalFields.transactionType; } if (additionalFields.partnerId) { qs.partner_id = additionalFields.partnerId; } const options = { method: 'GET', url: `/poller/${bucketName}`, qs, json: true, }; responseData = await this.helpers.requestWithAuthentication.call(this, 'orderfulApi', options); } else if (operation === 'removeTransactions') { const transactionIds = this.getNodeParameter('transactionIds', i); const idArray = transactionIds.split(',').map((id) => id.trim()); const body = { transaction_ids: idArray, }; const options = { method: 'POST', url: `/poller/${bucketName}/remove`, body, json: true, }; responseData = await this.helpers.requestWithAuthentication.call(this, 'orderfulApi', options); } const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } }); returnData.push(...executionData); } catch (error) { if (this.continueOnFail()) { const executionErrorData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray({ error: error.message }), { itemData: { item: i } }); returnData.push(...executionErrorData); continue; } throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex: i, }); } } return [returnData]; } } exports.OrderfulPoller = OrderfulPoller; //# sourceMappingURL=OrderfulPoller.node.js.map