UNPKG

n8n

Version:

n8n Workflow Automation Tool

88 lines (87 loc) 6.45 kB
import type { AddDataTableColumnDto, CreateDataTableDto, DeleteDataTableRowsDto, ListDataTableContentQueryDto, MoveDataTableColumnDto, RenameDataTableColumnDto, DataTableListOptions, UpsertDataTableRowDto, UpdateDataTableDto, UpdateDataTableRowDto } from '@n8n/api-types'; import { Logger } from '@n8n/backend-common'; import { ProjectRelationRepository, type User } from '@n8n/db'; import type { DataTableFilter, DataTableRow, DataTableRowReturn, DataTableRows, DataTableInsertRowsReturnType, DataTableInsertRowsResult, DataTablesSizeResult, DataTableRowReturnWithState } from 'n8n-workflow'; import { CsvParserService } from './csv-parser.service'; import { DataTableColumn } from './data-table-column.entity'; import { DataTableColumnRepository } from './data-table-column.repository'; import { DataTableFileCleanupService } from './data-table-file-cleanup.service'; import { DataTableRowsRepository } from './data-table-rows.repository'; import { DataTableSizeValidator } from './data-table-size-validator.service'; import { DataTableRepository } from './data-table.repository'; import { RoleService } from '../../services/role.service'; export declare class DataTableService { private readonly dataTableRepository; private readonly dataTableColumnRepository; private readonly dataTableRowsRepository; private readonly logger; private readonly dataTableSizeValidator; private readonly projectRelationRepository; private readonly roleService; private readonly csvParserService; private readonly fileCleanupService; constructor(dataTableRepository: DataTableRepository, dataTableColumnRepository: DataTableColumnRepository, dataTableRowsRepository: DataTableRowsRepository, logger: Logger, dataTableSizeValidator: DataTableSizeValidator, projectRelationRepository: ProjectRelationRepository, roleService: RoleService, csvParserService: CsvParserService, fileCleanupService: DataTableFileCleanupService); start(): Promise<void>; shutdown(): Promise<void>; createDataTable(projectId: string, dto: CreateDataTableDto): Promise<import("./data-table.entity").DataTable>; private importDataFromFile; updateDataTable(dataTableId: string, projectId: string, dto: UpdateDataTableDto): Promise<boolean>; transferDataTablesByProjectId(fromProjectId: string, toProjectId: string): Promise<boolean>; deleteDataTableByProjectId(projectId: string): Promise<boolean>; deleteDataTableAll(): Promise<boolean>; deleteDataTable(dataTableId: string, projectId: string): Promise<boolean>; addColumn(dataTableId: string, projectId: string, dto: AddDataTableColumnDto): Promise<DataTableColumn>; moveColumn(dataTableId: string, projectId: string, columnId: string, dto: MoveDataTableColumnDto): Promise<boolean>; deleteColumn(dataTableId: string, projectId: string, columnId: string): Promise<boolean>; renameColumn(dataTableId: string, projectId: string, columnId: string, dto: RenameDataTableColumnDto): Promise<{ name: string; dataTableId: string; type: "string" | "number" | "boolean" | "date"; index: number; dataTable: import("./data-table.entity").DataTable; id: string; generateId(): void; createdAt: Date; updatedAt: Date; setUpdateDate(): void; }>; getManyAndCount(options: DataTableListOptions): Promise<{ count: number; data: import("./data-table.entity").DataTable[]; }>; getManyRowsAndCount(dataTableId: string, projectId: string, dto: ListDataTableContentQueryDto): Promise<{ count: number; data: import("n8n-workflow").DataTableRowsReturn; }>; getColumns(dataTableId: string, projectId: string): Promise<DataTableColumn[]>; insertRows<T extends DataTableInsertRowsReturnType = 'count'>(dataTableId: string, projectId: string, rows: DataTableRows, returnType?: T): Promise<DataTableInsertRowsResult<T>>; upsertRow<T extends boolean | undefined>(dataTableId: string, projectId: string, dto: Omit<UpsertDataTableRowDto, 'returnData' | 'dryRun'>, returnData: true, dryRun?: boolean): Promise<DataTableRowReturn[] | DataTableRowReturnWithState[]>; upsertRow(dataTableId: string, projectId: string, dto: Omit<UpsertDataTableRowDto, 'returnData' | 'dryRun'>, returnData?: boolean, dryRun?: true): Promise<DataTableRowReturnWithState[]>; upsertRow(dataTableId: string, projectId: string, dto: Omit<UpsertDataTableRowDto, 'returnData' | 'dryRun'>, returnData?: false, dryRun?: false): Promise<true>; validateAndTransformUpdateParams({ filter, data }: Pick<UpdateDataTableRowDto, 'filter' | 'data'>, columns: DataTableColumn[]): { data: DataTableRow; filter: DataTableFilter; }; updateRows<T extends boolean | undefined>(dataTableId: string, projectId: string, dto: Omit<UpdateDataTableRowDto, 'returnData' | 'dryRun'>, returnData: true, dryRun?: boolean): Promise<DataTableRowReturn[] | DataTableRowReturnWithState[]>; updateRows(dataTableId: string, projectId: string, dto: Omit<UpdateDataTableRowDto, 'returnData' | 'dryRun'>, returnData?: boolean, dryRun?: true): Promise<DataTableRowReturnWithState[]>; updateRows(dataTableId: string, projectId: string, dto: Omit<UpdateDataTableRowDto, 'returnData' | 'dryRun'>, returnData?: false, dryRun?: false): Promise<true>; deleteRows(dataTableId: string, projectId: string, dto: Omit<DeleteDataTableRowsDto, 'returnData' | 'dryRun'>, returnData: true, dryRun?: boolean): Promise<DataTableRowReturn[]>; deleteRows(dataTableId: string, projectId: string, dto: Omit<DeleteDataTableRowsDto, 'returnData' | 'dryRun'>, returnData?: boolean, dryRun?: true): Promise<DataTableRowReturn[]>; deleteRows(dataTableId: string, projectId: string, dto: Omit<DeleteDataTableRowsDto, 'returnData' | 'dryRun'>, returnData?: false, dryRun?: false): Promise<true>; private validateAndTransformRows; private validateAndTransformCell; private validateDataTableExists; private validateColumnExists; private validateUniqueName; private validateAndTransformFilters; private validateDataTableSize; getDataTablesSize(user: User): Promise<DataTablesSizeResult>; generateDataTableCsv(dataTableId: string, projectId: string): Promise<{ csvContent: string; dataTableName: string; }>; private buildCsvContent; private formatValueForCsv; private formatDateForCsv; private escapeCsvValue; }