mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
feat(n8n Evaluation Trigger Node): Add Evaluation Trigger and Evaluation Node (#15194)
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
import type { IExecuteFunctions, INodeExecutionData, IDataObject } from 'n8n-workflow';
|
||||
|
||||
import { readSheet } from '../../Google/Sheet/v2/actions/utils/readOperation';
|
||||
import { GoogleSheet } from '../../Google/Sheet/v2/helpers/GoogleSheet';
|
||||
import type { ResourceLocator } from '../../Google/Sheet/v2/helpers/GoogleSheets.types';
|
||||
import { getSpreadsheetId } from '../../Google/Sheet/v2/helpers/GoogleSheets.utils';
|
||||
|
||||
export async function getSheet(
|
||||
this: IExecuteFunctions,
|
||||
googleSheet: GoogleSheet,
|
||||
): Promise<{
|
||||
title: string;
|
||||
sheetId: number;
|
||||
}> {
|
||||
const sheetWithinDocument = this.getNodeParameter('sheetName', 0, undefined, {
|
||||
extractValue: true,
|
||||
}) as string;
|
||||
const { mode: sheetMode } = this.getNodeParameter('sheetName', 0) as {
|
||||
mode: ResourceLocator;
|
||||
};
|
||||
|
||||
return await googleSheet.spreadsheetGetSheet(this.getNode(), sheetMode, sheetWithinDocument);
|
||||
}
|
||||
|
||||
export function getGoogleSheet(this: IExecuteFunctions) {
|
||||
const { mode, value } = this.getNodeParameter('documentId', 0) as IDataObject;
|
||||
const spreadsheetId = getSpreadsheetId(this.getNode(), mode as ResourceLocator, value as string);
|
||||
|
||||
const googleSheet = new GoogleSheet(spreadsheetId, this);
|
||||
|
||||
return googleSheet;
|
||||
}
|
||||
|
||||
export async function getFilteredResults(
|
||||
this: IExecuteFunctions,
|
||||
operationResult: INodeExecutionData[],
|
||||
googleSheet: GoogleSheet,
|
||||
result: { title: string; sheetId: number },
|
||||
startingRow: number,
|
||||
endingRow: number,
|
||||
): Promise<INodeExecutionData[]> {
|
||||
const sheetName = result.title;
|
||||
|
||||
operationResult = await readSheet.call(
|
||||
this,
|
||||
googleSheet,
|
||||
sheetName,
|
||||
0,
|
||||
operationResult,
|
||||
this.getNode().typeVersion,
|
||||
[],
|
||||
undefined,
|
||||
{
|
||||
rangeDefinition: 'specifyRange',
|
||||
headerRow: 1,
|
||||
firstDataRow: startingRow,
|
||||
},
|
||||
);
|
||||
|
||||
return operationResult.filter((row) => (row?.json?.row_number as number) <= endingRow);
|
||||
}
|
||||
|
||||
export async function getNumberOfRowsLeftFiltered(
|
||||
this: IExecuteFunctions,
|
||||
googleSheet: GoogleSheet,
|
||||
sheetName: string,
|
||||
startingRow: number,
|
||||
endingRow: number,
|
||||
) {
|
||||
const remainderSheet: INodeExecutionData[] = await readSheet.call(
|
||||
this,
|
||||
googleSheet,
|
||||
sheetName,
|
||||
0,
|
||||
[],
|
||||
this.getNode().typeVersion,
|
||||
[],
|
||||
undefined,
|
||||
{
|
||||
rangeDefinition: 'specifyRange',
|
||||
headerRow: 1,
|
||||
firstDataRow: startingRow,
|
||||
},
|
||||
);
|
||||
|
||||
return remainderSheet.filter((row) => (row?.json?.row_number as number) <= endingRow).length;
|
||||
}
|
||||
|
||||
export async function getResults(
|
||||
this: IExecuteFunctions,
|
||||
operationResult: INodeExecutionData[],
|
||||
googleSheet: GoogleSheet,
|
||||
result: { title: string; sheetId: number },
|
||||
rangeOptions: IDataObject,
|
||||
): Promise<INodeExecutionData[]> {
|
||||
const sheetName = result.title;
|
||||
|
||||
operationResult = await readSheet.call(
|
||||
this,
|
||||
googleSheet,
|
||||
sheetName,
|
||||
0,
|
||||
operationResult,
|
||||
this.getNode().typeVersion,
|
||||
[],
|
||||
undefined,
|
||||
rangeOptions,
|
||||
);
|
||||
|
||||
return operationResult;
|
||||
}
|
||||
|
||||
export async function getRowsLeft(
|
||||
this: IExecuteFunctions,
|
||||
googleSheet: GoogleSheet,
|
||||
sheetName: string,
|
||||
rangeString: string,
|
||||
) {
|
||||
const remainderSheet: INodeExecutionData[] = await readSheet.call(
|
||||
this,
|
||||
googleSheet,
|
||||
sheetName,
|
||||
0,
|
||||
[],
|
||||
this.getNode().typeVersion,
|
||||
[],
|
||||
rangeString,
|
||||
);
|
||||
|
||||
return remainderSheet.length;
|
||||
}
|
||||
Reference in New Issue
Block a user