n8n-nodes-placid
Version:
n8n node to interact with Placid API for creative generation
211 lines • 8.6 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.Placid = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const transport_1 = require("./transport");
const methods_1 = require("./methods");
const image_1 = require("./actions/image");
const pdf_1 = require("./actions/pdf");
const video_1 = require("./actions/video");
const other_1 = require("./actions/other");
const template_1 = require("./actions/template");
const imageCreate = __importStar(require("./actions/image/create.operation"));
const imageGet = __importStar(require("./actions/image/get.operation"));
const imageDelete = __importStar(require("./actions/image/delete.operation"));
const pdfCreate = __importStar(require("./actions/pdf/create.operation"));
const pdfMerge = __importStar(require("./actions/pdf/merge.operation"));
const pdfGet = __importStar(require("./actions/pdf/get.operation"));
const pdfDelete = __importStar(require("./actions/pdf/delete.operation"));
const videoCreate = __importStar(require("./actions/video/create.operation"));
const videoGet = __importStar(require("./actions/video/get.operation"));
const videoDelete = __importStar(require("./actions/video/delete.operation"));
const otherUploadMedia = __importStar(require("./actions/other/uploadMedia.operation"));
const templateCreate = __importStar(require("./actions/template/create.operation"));
const templateGet = __importStar(require("./actions/template/get.operation"));
const templateGetMany = __importStar(require("./actions/template/getMany.operation"));
const templateUpdate = __importStar(require("./actions/template/update.operation"));
const templateDelete = __importStar(require("./actions/template/delete.operation"));
class Placid {
constructor() {
this.description = {
displayName: 'Placid',
name: 'placid',
icon: 'file:placid.svg',
group: ['transform'],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'Generate images, PDFs, and videos via Placid\'s API',
defaults: {
name: 'Placid',
},
inputs: ["main"],
outputs: ["main"],
usableAsTool: true,
credentials: [
{
name: 'placidApi',
required: true,
},
],
requestDefaults: transport_1.requestDefaults,
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Image',
value: 'image',
},
{
name: 'PDF',
value: 'pdf',
},
{
name: 'Video',
value: 'video',
},
{
name: 'Template',
value: 'template',
},
{
name: 'Other',
value: 'other',
},
],
default: 'image',
},
...image_1.imageOperations,
...pdf_1.pdfOperations,
...video_1.videoOperations,
...template_1.templateOperations,
...other_1.otherOperations,
...image_1.imageFields,
...pdf_1.pdfFields,
...video_1.videoFields,
...template_1.templateFields,
...other_1.otherFields,
],
};
this.methods = {
listSearch: {
getTemplates: methods_1.getTemplates,
},
loadOptions: {
getTemplateLayers: methods_1.getTemplateLayers,
getTextLayers: methods_1.getTextLayers,
getPictureLayers: methods_1.getPictureLayers,
getPdfPageTextLayers: methods_1.getPdfPageTextLayers,
getPdfPagePictureLayers: methods_1.getPdfPagePictureLayers,
},
};
}
async execute() {
const items = this.getInputData();
const returnData = [];
const resource = this.getNodeParameter('resource', 0);
const operation = this.getNodeParameter('operation', 0);
const operationMap = {
image: {
create: imageCreate.execute,
get: imageGet.execute,
delete: imageDelete.execute,
},
pdf: {
create: pdfCreate.execute,
merge: pdfMerge.execute,
get: pdfGet.execute,
delete: pdfDelete.execute,
},
video: {
create: videoCreate.execute,
get: videoGet.execute,
delete: videoDelete.execute,
},
template: {
create: templateCreate.execute,
get: templateGet.execute,
getMany: templateGetMany.execute,
update: templateUpdate.execute,
delete: templateDelete.execute,
},
other: {
uploadMedia: otherUploadMedia.execute,
},
};
const resourceOperations = operationMap[resource];
if (!resourceOperations) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The resource "${resource}" is not supported`);
}
const operationHandler = resourceOperations[operation];
if (!operationHandler) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for resource "${resource}"`);
}
for (let i = 0; i < items.length; i++) {
try {
if (operation === 'getMany') {
const results = await operationHandler.call(this, i);
returnData.push(...results);
}
else {
const result = await operationHandler.call(this, i);
returnData.push(result);
}
}
catch (error) {
if (this.continueOnFail()) {
returnData.push({
json: this.getInputData()[i].json,
error,
pairedItem: { item: i },
});
}
else {
if (error instanceof n8n_workflow_1.NodeOperationError) {
throw error;
}
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error.message, { itemIndex: i });
}
}
}
return [returnData];
}
}
exports.Placid = Placid;
//# sourceMappingURL=Placid.node.js.map