feat(Facebook Lead Ads Trigger Node): Add Facebook Lead Ads Trigger Node (#7113)

Github issue / Community forum post (link here to close automatically):
https://community.n8n.io/t/facebook-lead-ads-integration/4590/19

---------

Co-authored-by: Marcus <marcus@n8n.io>
This commit is contained in:
Elias Meire
2023-10-20 13:43:55 +02:00
committed by GitHub
parent 647372be27
commit ac814a9c61
14 changed files with 835 additions and 25 deletions

View File

@@ -0,0 +1 @@
export * as listSearch from './listSearch';

View File

@@ -0,0 +1,42 @@
import type { ILoadOptionsFunctions, INodeListSearchResult } from 'n8n-workflow';
import { facebookFormList, facebookPageList } from '../GenericFunctions';
const filterMatches = (name: string, filter?: string): boolean =>
!filter || name?.toLowerCase().includes(filter.toLowerCase());
export async function pageList(
this: ILoadOptionsFunctions,
filter?: string,
paginationToken?: string,
): Promise<INodeListSearchResult> {
const { data: pages, paging } = await facebookPageList.call(this, paginationToken);
return {
results: pages
.filter((page) => filterMatches(page.name, filter))
.map((page) => ({
name: page.name,
value: page.id,
url: `https://facebook.com/${page.id}`,
})),
paginationToken: paging?.cursors?.after,
};
}
export async function formList(
this: ILoadOptionsFunctions,
filter?: string,
paginationToken?: string,
): Promise<INodeListSearchResult> {
const pageId = this.getNodeParameter('page', '', { extractValue: true }) as string;
const { data: forms, paging } = await facebookFormList.call(this, pageId, paginationToken);
return {
results: forms
.filter((form) => filterMatches(form.name, filter))
.map((form) => ({
name: form.name,
value: form.id,
})),
paginationToken: paging?.cursors?.after,
};
}