n8n-nodes-wechat-work
Version:
107 lines • 4.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WechatWorkNode = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const ResourceBuilder_1 = __importDefault(require("../help/builder/ResourceBuilder"));
const ModuleLoadUtils_1 = __importDefault(require("../help/utils/ModuleLoadUtils"));
const resourceBuilder = new ResourceBuilder_1.default();
ModuleLoadUtils_1.default.loadModules(__dirname, 'resource/*.js').forEach((resource) => {
resourceBuilder.addResource(resource);
ModuleLoadUtils_1.default.loadModules(__dirname, `resource/${resource.value}/*.js`).forEach((operate) => {
resourceBuilder.addOperate(resource.value, operate);
});
});
class WechatWorkNode {
constructor() {
this.description = {
displayName: 'Wechat Work Node',
name: 'wechatWorkNode',
icon: 'file:icon.png',
group: ['transform'],
version: 1,
description: 'Wechat Work Node',
defaults: {
name: 'Wechat Work Node',
},
inputs: ['main'],
outputs: ['main'],
credentials: [
{
name: 'wechatWorkCredentialsApi',
required: true,
testedBy: 'accessTokenTest',
},
],
properties: resourceBuilder.build(),
};
this.methods = {
credentialTest: {
async accessTokenTest(credential) {
const credentials = credential.data;
const res = (await this.helpers.request({
method: 'GET',
url: `https://${credentials.baseUrl}/cgi-bin/gettoken?corpid=${credentials.username}&corpsecret=${credentials.password}`,
}));
console.log('credentialTest', res);
return {
status: 'Error',
message: 'test',
};
},
},
};
}
async execute() {
const items = this.getInputData();
let responseData = {};
let returnData = [];
const resource = this.getNodeParameter('resource', 0);
const operation = this.getNodeParameter('operation', 0);
const callFunc = resourceBuilder.getCall(resource, operation);
if (!callFunc) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), '未实现方法: ' + resource + '.' + operation);
}
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
try {
this.logger.debug('call function', {
resource,
operation,
itemIndex
});
responseData = await callFunc.call(this, itemIndex);
}
catch (error) {
this.logger.error('call function error', {
resource,
operation,
itemIndex,
errorMessage: error.message,
stack: error.stack
});
if (this.continueOnFail()) {
returnData.push({
json: {
error: error.message
},
pairedItem: itemIndex,
});
continue;
}
else {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
message: error.message,
itemIndex,
});
}
}
const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: itemIndex } });
returnData.push(...executionData);
}
return [returnData];
}
}
exports.WechatWorkNode = WechatWorkNode;
//# sourceMappingURL=WechatWorkNode.node.js.map