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).
150 lines (149 loc) • 6.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SevDesk = void 0;
const SevDeskResourceManager_1 = require("./SevDeskResourceManager");
const ResourceRegistry_1 = require("./ResourceRegistry");
const ValidationSchemas_1 = require("./validation/ValidationSchemas");
const EnvironmentConfig_1 = require("./config/EnvironmentConfig");
const descriptions_1 = require("./descriptions");
class SevDesk {
constructor() {
this.description = {
displayName: "sevDesk",
name: "sevDesk",
group: ["output"],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: "Consume the sevDesk API",
icon: "file:sevDesk.svg",
defaults: {
name: "sevDesk",
},
inputs: ["main"],
outputs: ["main"],
credentials: [
{
name: "sevDeskApi",
required: true,
},
],
requestDefaults: {
baseURL: "https://my.sevdesk.de/api/{{$credentials.apiVersion}}",
url: "",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
},
},
properties: [
{
displayName: "Resource",
name: "resource",
type: "options",
noDataExpression: true,
default: "",
options: ResourceRegistry_1.ResourceRegistry.getResourceOptions(),
},
...descriptions_1.contactOperations,
...descriptions_1.contactFields,
...descriptions_1.contactAddressOperations,
...descriptions_1.contactAddressFields,
...descriptions_1.contactCustomFieldOperations,
...descriptions_1.contactCustomFieldFields,
...descriptions_1.contactCustomFieldSettingOperations,
...descriptions_1.contactCustomFieldSettingFields,
...descriptions_1.contactFieldOperations,
...descriptions_1.contactFieldFields,
...descriptions_1.countryOperations,
...descriptions_1.countryFields,
...descriptions_1.categoryOperations,
...descriptions_1.categoryFields,
...descriptions_1.communicationWayOperations,
...descriptions_1.communicationWayFields,
...descriptions_1.accountingContactOperations,
...descriptions_1.accountingContactFields,
...descriptions_1.unityOperations,
...descriptions_1.unityFields,
...descriptions_1.orderOperations,
...descriptions_1.orderFields,
...descriptions_1.orderPosOperations,
...descriptions_1.orderPosFields,
...descriptions_1.orderPoOperations,
...descriptions_1.partOperations,
...descriptions_1.partFields,
...descriptions_1.checkAccountOperations,
...descriptions_1.checkAccountFields,
...descriptions_1.checkAccountTransactionOperations,
...descriptions_1.checkAccountTransactionFields,
...descriptions_1.creditNoteOperations,
...descriptions_1.creditNoteFields,
...descriptions_1.creditNotePosOperations,
...descriptions_1.creditNotePosFields,
...descriptions_1.exportOperations,
...descriptions_1.exportFields,
...descriptions_1.tagOperations,
...descriptions_1.tagFields,
...descriptions_1.tagRelationOperations,
...descriptions_1.tagRelationFields,
...descriptions_1.invoiceOperations,
...descriptions_1.invoiceFields,
...descriptions_1.invoicePosOperations,
...descriptions_1.invoicePosFields,
...descriptions_1.layoutOperations,
...descriptions_1.layoutFields,
...descriptions_1.reportOperations,
...descriptions_1.reportFields,
...descriptions_1.voucherOperations,
...descriptions_1.voucherFields,
...descriptions_1.voucherPoOperations,
...descriptions_1.voucherPoFields,
...descriptions_1.voucherPosOperations,
...descriptions_1.voucherPosFields,
...descriptions_1.basicsOperations,
...descriptions_1.basicsFields,
...descriptions_1.batchOperations,
...descriptions_1.batchFields,
],
};
}
async execute() {
(0, EnvironmentConfig_1.validateAndWarnEnvironmentConfig)();
const items = this.getInputData();
const returnData = [];
const resourceManager = new SevDeskResourceManager_1.SevDeskResourceManager(this);
for (let i = 0; i < items.length; i++) {
try {
const resource = this.getNodeParameter("resource", i);
const operation = this.getNodeParameter("operation", i);
const result = await resourceManager.executeResourceOperation(resource, operation, i);
if (result) {
returnData.push(result);
}
}
catch (error) {
if (this.continueOnFail()) {
returnData.push({
json: {
error: error.message,
},
pairedItem: {
item: i,
},
});
continue;
}
throw error;
}
}
return [returnData];
}
}
exports.SevDesk = SevDesk;
(() => {
try {
(0, ValidationSchemas_1.initializeValidationSchemas)();
}
catch (error) {
console.error("Failed to initialize SevDesk validation schemas:", error);
}
})();