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).
79 lines (78 loc) • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.InvoiceHandler = void 0;
const BaseResourceHandler_1 = require("../base/BaseResourceHandler");
class InvoiceHandler extends BaseResourceHandler_1.CrudResourceHandler {
constructor(executeFunctions) {
super(executeFunctions, "Invoice", "Invoice");
this.config.idParameterName = "invoiceId";
}
buildCustomRequest(baseOptions, baseURL, operation, itemIndex) {
switch (operation) {
case "sendByEmail":
const invoiceId = this.executeFunctions.getNodeParameter("invoiceId", itemIndex);
const sendType = this.executeFunctions.getNodeParameter("sendType", itemIndex, "VPR");
return {
...baseOptions,
method: "PUT",
url: `${baseURL}/Invoice/${invoiceId}/sendByEmail`,
body: { sendType },
};
case "bookAmount":
const invoiceIdBook = this.executeFunctions.getNodeParameter("invoiceId", itemIndex);
const amount = this.executeFunctions.getNodeParameter("amount", itemIndex);
const date = this.executeFunctions.getNodeParameter("date", itemIndex);
return {
...baseOptions,
method: "PUT",
url: `${baseURL}/Invoice/${invoiceIdBook}/bookAmount`,
body: { amount, date },
};
case "cancelInvoice":
const invoiceIdCancel = this.executeFunctions.getNodeParameter("invoiceId", itemIndex);
return {
...baseOptions,
method: "PUT",
url: `${baseURL}/Invoice/${invoiceIdCancel}/cancelInvoice`,
};
case "getPositions":
const invoiceIdPos = this.executeFunctions.getNodeParameter("invoiceId", itemIndex);
return {
...baseOptions,
method: "GET",
url: `${baseURL}/InvoicePos`,
qs: { "invoice[id]": invoiceIdPos, "invoice[objectName]": "Invoice" },
};
default:
return super.buildCustomRequest(baseOptions, baseURL, operation, itemIndex);
}
}
transformCreateData(data) {
if (!data || typeof data !== "object") {
return {};
}
if (data.invoiceDate) {
data.invoiceDate = new Date(data.invoiceDate).toISOString().split("T")[0];
}
if (data.deliveryDate) {
data.deliveryDate = new Date(data.deliveryDate)
.toISOString()
.split("T")[0];
}
return data;
}
transformQueryParams(params) {
if (params.startDate) {
params.startDate = new Date(params.startDate)
.toISOString()
.split("T")[0];
}
if (params.endDate) {
params.endDate = new Date(params.endDate)
.toISOString()
.split("T")[0];
}
return params;
}
}
exports.InvoiceHandler = InvoiceHandler;