n8n-nodes-sevdesk-v2
Version:
n8n community node for SevDesk API v2 integration with 24 production-ready workflow templates. Direct API access without external dependencies - simplified, secure, and optimized for German accounting automation (n8n 1.101.1 compatible).
64 lines (63 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExamplePlugin = void 0;
const BaseResourceHandler_1 = require("../base/BaseResourceHandler");
class ExampleResourceHandler extends BaseResourceHandler_1.CrudResourceHandler {
constructor(executeFunctions) {
super(executeFunctions, 'Example', 'Example');
this.config.idParameterName = 'exampleId';
}
buildCustomRequest(baseOptions, baseURL, operation, itemIndex) {
switch (operation) {
case 'search':
const searchTerm = this.executeFunctions.getNodeParameter('searchTerm', itemIndex);
return {
...baseOptions,
method: 'GET',
url: `${baseURL}/Example/search`,
qs: { q: searchTerm },
};
case 'activate':
const exampleId = this.executeFunctions.getNodeParameter('exampleId', itemIndex);
return {
...baseOptions,
method: 'PUT',
url: `${baseURL}/Example/${exampleId}/activate`,
};
default:
return super.buildCustomRequest(baseOptions, baseURL, operation, itemIndex);
}
}
transformCreateData(data) {
if (data.name) {
data.name = data.name.trim();
}
return data;
}
transformQueryParams(params) {
return params;
}
}
const metadata = {
name: 'Example Resource Plugin',
version: '1.0.0',
description: 'Example plugin demonstrating the plugin architecture for SevDesk resources',
author: 'SevDesk Plugin Team',
dependencies: [],
apiVersion: 'v1',
tags: ['example', 'demo', 'plugin-architecture'],
};
exports.ExamplePlugin = {
metadata,
handlerClass: ExampleResourceHandler,
async initialize() {
console.log(`Initializing ${metadata.name} v${metadata.version}`);
},
async validate() {
console.log(`Validating ${metadata.name}`);
return true;
},
async cleanup() {
console.log(`Cleaning up ${metadata.name}`);
},
};