n8n-nodes-chatwoot
Version:
This is an n8n community node. It lets you use ChatWoot in your n8n workflows.
59 lines • 3.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.resourcePublic = void 0;
const GenericFunctions_1 = require("../GenericFunctions");
async function resourcePublic(operation, items, i) {
const baseEndpoint = '/public/api/v1/inboxes/{{inbox_identifier}}';
const inboxIdentifier = this.getNodeParameter('inboxIdentifier', i);
let endpoint = baseEndpoint.replace('{{inbox_identifier}}', inboxIdentifier);
let responseData;
if (operation === 'publicContactCreate') {
endpoint = endpoint + "/contacts";
const body = {
name: this.getNodeParameter('name', i),
inbox_id: this.getNodeParameter('inboxId', i, null),
phone_number: this.getNodeParameter('phoneNumber', i, null),
email: this.getNodeParameter('email', i, null),
source_id: this.getNodeParameter('sourceId', i, null),
identifier: this.getNodeParameter('contactIdentifier', i, null),
};
const parCustomAttributes = this.getNodeParameter('customAttributes', i);
if (parCustomAttributes && parCustomAttributes.attribute) {
const data = {};
const atts = parCustomAttributes.attribute;
atts.map(property => {
data[property.key] = property.value;
});
body.custom_attributes = data;
}
responseData = await GenericFunctions_1.apiRequest.call(this, 'POST', endpoint, body);
}
else if (operation === 'contact') {
endpoint = endpoint + "/contacts/{{source_id}}";
const contactIdentifier = this.getNodeParameter('sourceId', i);
endpoint = endpoint.replace('{{source_id}}', contactIdentifier);
responseData = await GenericFunctions_1.apiRequest.call(this, 'GET', endpoint);
}
else if (operation === 'messageCreate') {
const body = {
content: this.getNodeParameter('content', i),
};
endpoint = endpoint + "/contacts/{{source_id}}/conversations/{{conversation_id}}/messages";
const contactIdentifier = this.getNodeParameter('sourceId', i);
endpoint = endpoint.replace('{{source_id}}', contactIdentifier);
const conversationId = this.getNodeParameter('conversationId', i);
endpoint = endpoint.replace('{{conversation_id}}', conversationId);
responseData = await GenericFunctions_1.apiRequest.call(this, 'POST', endpoint, body);
}
else if (operation === 'messages') {
endpoint = endpoint + "/contacts/{{source_id}}/conversations/{{conversationId}}/messages";
const contactIdentifier = this.getNodeParameter('sourceId', i);
endpoint = endpoint.replace('{{source_id}}', contactIdentifier);
const conversationId = this.getNodeParameter('conversationId', i);
endpoint = endpoint.replace('{{conversationId}}', conversationId);
responseData = await GenericFunctions_1.apiRequest.call(this, 'GET', endpoint);
}
return responseData;
}
exports.resourcePublic = resourcePublic;
//# sourceMappingURL=PublicMethods.js.map