Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion nodes/WAHA/WAHA.node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,17 @@ import { VersionedNodeType } from 'n8n-workflow';
import { WAHAv202409 } from './v202409/WAHAv202409';
import {BASE_DESCRIPTION} from "./base/node";
import {WAHAv202502} from "./v202502/WAHAv202502";
import {WAHAv202602} from "./v202602/WAHAv202602";

export class WAHA extends VersionedNodeType {
constructor() {
const baseDescription: INodeTypeBaseDescription = {
...BASE_DESCRIPTION,
defaultVersion: 202502,
defaultVersion: 202602,
};

const nodeVersions: IVersionedNodeType['nodeVersions'] = {
202602: new WAHAv202602(),
202502: new WAHAv202502(),
202409: new WAHAv202409(),
};
Expand Down
4 changes: 3 additions & 1 deletion nodes/WAHA/WAHATrigger.node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,17 @@ import { VersionedNodeType } from 'n8n-workflow';
import {BASE_TRIGGER_DESCRIPTION} from "./base/trigger";
import {WAHATriggerV202409} from "./v202409/WAHATriggerV202409";
import {WAHATriggerV202502} from "./v202502/WAHATriggerV202502";
import {WAHATriggerV202602} from "./v202602/WAHATriggerV202602";

export class WAHATrigger extends VersionedNodeType {
constructor() {
const baseDescription: INodeTypeBaseDescription = {
...BASE_TRIGGER_DESCRIPTION,
defaultVersion: 202502,
defaultVersion: 202602,
};

const nodeVersions: IVersionedNodeType['nodeVersions'] = {
202602: new WAHATriggerV202602(),
202502: new WAHATriggerV202502(),
202409: new WAHATriggerV202409(),
};
Expand Down
26 changes: 26 additions & 0 deletions nodes/WAHA/base/trigger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,29 @@ export function makeWebhookForEvents(events: string[]) {

return webhook;
}

export function makeWebhookForSelectedEvents() {
async function webhook(this: IWebhookFunctions): Promise<IWebhookResponseData> {
const bodyData = this.getBodyData();
const eventType = bodyData.event as string | undefined;
const listenEvents = this.getNodeParameter('listenEvents') as string[];

if (eventType === undefined || !listenEvents.includes(eventType)) {
return {};
}

const eventIndex: number = listenEvents.indexOf(eventType);
const req = this.getRequestObject();

const data = this.helpers.returnJsonArray(req.body as IDataObject);
const empty: INodeExecutionData[] = [];
const workflowData = listenEvents.map((_) => empty);
workflowData[eventIndex] = data;

return {
workflowData: workflowData,
};
}

return webhook;
}
7 changes: 7 additions & 0 deletions nodes/WAHA/v202602/WAHATriggerV202602.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { configuredOutputs } from './utils';
import { WAHATriggerV202602 } from './WAHATriggerV202602';

test('WAHATriggerV202602.outputs', () => {
const node = new WAHATriggerV202602();
expect(node.description.outputs).toEqual(`={{(${configuredOutputs})($parameter)}}`);
});
37 changes: 37 additions & 0 deletions nodes/WAHA/v202602/WAHATriggerV202602.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import {
INodeType,
INodeTypeDescription,
} from 'n8n-workflow';

import {
BASE_TRIGGER_DESCRIPTION,
CONFIGURE_WEBHOOK_NOTE,
makeWebhookForSelectedEvents,
TRIGGER_DESCRIPTION,
} from '../base/trigger';
import { configuredOutputs, events } from './utils';

const defaultEvent = 'message'


export class WAHATriggerV202602 implements INodeType {
description: INodeTypeDescription = {
...BASE_TRIGGER_DESCRIPTION,
...TRIGGER_DESCRIPTION,
version: 202602,
outputs: `={{(${configuredOutputs})($parameter)}}`,
properties: [CONFIGURE_WEBHOOK_NOTE, {
displayName: 'Events',
name: 'listenEvents',
type: 'multiOptions',
options: [
...events.map(event => ({name: event, value: event})),
],
required: true,
default: [
defaultEvent
],
}],
};
webhook = makeWebhookForSelectedEvents()
}
Loading