import { IDataObject, ILoadOptionsFunctions, INodeListSearchItems, INodeListSearchResult } from "n8n-workflow"; import { notionApiRequestAllItems } from "./GenericFunctions"; export async function getDatabases( this: ILoadOptionsFunctions, filter?: string, ): Promise { const returnData: INodeListSearchItems[] = []; const body: IDataObject = { page_size: 100, query: filter, filter: { property: 'object', value: 'database' }, }; const databases = await notionApiRequestAllItems.call( this, 'results', 'POST', `/search`, body, ); for (const database of databases) { returnData.push({ name: database.title[0]?.plain_text || database.id, value: database.id, url: database.url, }); } returnData.sort((a, b) => { if (a.name.toLocaleLowerCase() < b.name.toLocaleLowerCase()) { return -1; } if (a.name.toLocaleLowerCase() > b.name.toLocaleLowerCase()) { return 1; } return 0; }); return { results: returnData }; }