n8n-nodes-memory-box
Version:
n8n node for Memory Box API integration
141 lines • 5.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MemoryBox = void 0;
const GenericFunctions_1 = require("../src/generic/GenericFunctions");
const MemoryBox_node_options_1 = require("./MemoryBox.node.options");
class MemoryBox {
constructor() {
this.description = {
displayName: 'Memory Box',
name: 'memoryBox',
icon: 'file:memory-box.svg',
group: ['output', 'input'],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'Interact with Memory Box API to store and retrieve memories',
defaults: {
name: 'Memory Box',
},
inputs: ['main'],
outputs: ['main'],
credentials: [
{
name: 'memoryBoxApi',
required: true,
},
],
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Memory',
value: 'memory',
},
{
name: 'Bucket',
value: 'bucket',
},
],
default: 'memory',
description: 'Resource to consume',
},
// Memory operations
...MemoryBox_node_options_1.memoryOperations,
// Bucket operations
...MemoryBox_node_options_1.bucketOperations,
// Fields for specific operations
...MemoryBox_node_options_1.memoryFields,
],
};
}
async execute() {
const items = this.getInputData();
const returnData = [];
const resource = this.getNodeParameter('resource', 0);
const operation = this.getNodeParameter('operation', 0);
let responseData;
for (let i = 0; i < items.length; i++) {
try {
if (resource === 'memory') {
// Memory operations
if (operation === 'store') {
// Store a memory
const text = this.getNodeParameter('text', i);
const bucketId = this.getNodeParameter('bucketId', i, null);
const formattedText = (0, GenericFunctions_1.validateAndFormatMemory)(text);
const body = {
text: formattedText,
};
if (bucketId) {
body.bucketId = bucketId;
}
responseData = await GenericFunctions_1.memoryBoxApiRequest.call(this, 'POST', 'memory', body);
}
if (operation === 'search') {
// Search memories
const query = this.getNodeParameter('query', i);
const debug = this.getNodeParameter('debug', i, false);
const qs = {
query,
};
if (debug) {
qs.debug = debug;
}
responseData = await GenericFunctions_1.memoryBoxApiRequest.call(this, 'GET', 'memory', {}, qs);
responseData = (0, GenericFunctions_1.extractItems)(responseData);
}
if (operation === 'getAll') {
// Get all memories
const qs = {
all: true,
};
responseData = await GenericFunctions_1.memoryBoxApiRequest.call(this, 'GET', 'memory', {}, qs);
responseData = (0, GenericFunctions_1.extractItems)(responseData);
}
if (operation === 'getFromBucket') {
// Get memories from bucket
const bucketId = this.getNodeParameter('bucketId', i);
const qs = {
bucketId,
};
responseData = await GenericFunctions_1.memoryBoxApiRequest.call(this, 'GET', 'memory', {}, qs);
responseData = (0, GenericFunctions_1.extractItems)(responseData);
}
}
if (resource === 'bucket') {
if (operation === 'getAll') {
// Get all buckets
responseData = await GenericFunctions_1.memoryBoxApiRequest.call(this, 'GET', 'buckets');
responseData = (0, GenericFunctions_1.extractItems)(responseData);
}
}
// Return the data
if (Array.isArray(responseData)) {
// Return as an array of items
const executionData = responseData.map((item) => ({
json: item,
}));
returnData.push(...executionData);
}
else {
// Return as a single item
returnData.push({ json: responseData });
}
}
catch (error) {
if (this.continueOnFail()) {
returnData.push({ json: { error: error.message } });
continue;
}
throw error;
}
}
return [returnData];
}
}
exports.MemoryBox = MemoryBox;
//# sourceMappingURL=MemoryBox.node.js.map