n8n-nodes-pdforge
Version:
Pdforge Automate PDF Generation in minutes using AI.Create custom PDF templates in seconds using our AI Agents, fine tune the design with our no-code builder and automate the PDF delivery with our native pdforge node inside n8n. No code or design experien
122 lines • 5.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Pdforge = void 0;
const HtmlToPdfDescription_1 = require("./descriptions/HtmlToPdfDescription");
const ImageDescription_1 = require("./descriptions/ImageDescription");
const TemplateFields_1 = require("./descriptions/TemplateFields");
const PdfDescription_1 = require("./descriptions/PdfDescription");
const SharedFields_1 = require("./descriptions/SharedFields");
const GenericFunctions_1 = require("./GenericFunctions");
class Pdforge {
constructor() {
this.description = {
displayName: 'Pdforge',
name: 'pdforge',
icon: 'file:pdforge.svg',
group: ['transform'],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'Generate PDF or PNG with pdforge',
defaults: {
name: 'Pdforge',
},
inputs: ["main"],
outputs: ["main"],
credentials: [
{
name: 'pdforgeApi',
required: true,
},
],
requestDefaults: {
baseURL: 'https://api.pdforge.com',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
},
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Generate PDF',
value: 'pdf',
},
{
name: 'Generate Image',
value: 'image',
},
{
name: 'Convert HTML to PDF',
value: 'html-to-pdf',
},
],
default: 'pdf',
},
...PdfDescription_1.pdfOperations,
...ImageDescription_1.imageOperations,
...HtmlToPdfDescription_1.htmlToPdfOperations,
...TemplateFields_1.templateFields,
...HtmlToPdfDescription_1.htmlToPdfFields,
...SharedFields_1.sharedFields,
],
};
this.methods = {
loadOptions: {
async getTemplates() {
const returnData = [];
const { templates } = await GenericFunctions_1.pdforgeApiRequest.call(this, 'GET', '/integration', 'templates');
for (const template of templates) {
returnData.push({
name: template.displayName,
value: template.id,
});
}
return returnData;
},
},
};
}
async execute() {
const items = this.getInputData();
const returnData = [];
const length = items.length;
let responseData;
const resource = this.getNodeParameter('resource', 0);
const operation = this.getNodeParameter('operation', 0);
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
const templateId = resource !== 'html-to-pdf' &&
this.getNodeParameter('templateId', itemIndex, undefined);
const variables = resource !== 'html-to-pdf' && this.getNodeParameter('variables', itemIndex, undefined);
const data = resource !== 'html-to-pdf' && typeof variables === 'string'
? JSON.parse(variables)
: variables;
const html = resource === 'html-to-pdf' &&
this.getNodeParameter('html', itemIndex, undefined);
const pdfParams = resource === 'html-to-pdf' && this.getNodeParameter('pdfParams', itemIndex, undefined);
const webhook = operation === 'async' ? this.getNodeParameter('webhook', itemIndex, undefined) : undefined;
const { s3_bucket, s3_key } = this.getNodeParameter('options', itemIndex, {});
const convertToImage = resource === 'image' ? true : false;
const body = {
templateId,
convertToImage,
html,
pdfParams,
webhook,
s3_bucket,
s3_key,
data,
};
const endpoint = resource === 'html-to-pdf' ? '/html-to-pdf' : '/pdf';
responseData = await GenericFunctions_1.pdforgeApiRequest.call(this, 'POST', endpoint, operation, body);
returnData.push(responseData);
}
return [this.helpers.returnJsonArray(returnData)];
}
}
exports.Pdforge = Pdforge;
//# sourceMappingURL=Pdforge.node.js.map