UNPKG

n8n

Version:

n8n Workflow Automation Tool

101 lines (100 loc) 3.56 kB
import type { User } from '@n8n/db'; import { SharedWorkflowRepository } from '@n8n/db'; import type { SelectQueryBuilder } from '@n8n/typeorm'; import { DataSource, Repository } from '@n8n/typeorm'; import { InsightsByPeriod } from '../entities/insights-by-period'; import type { PeriodUnit, TypeUnit } from '../entities/insights-shared'; export type InsightsAccessFilter = { user: User; projectRoles: string[]; workflowRoles: string[]; }; export declare class InsightsByPeriodRepository extends Repository<InsightsByPeriod> { private readonly sharedWorkflowRepository; private isRunningCompaction; constructor(dataSource: DataSource, sharedWorkflowRepository: SharedWorkflowRepository); private escapeField; private applyAccessFilter; private getPeriodFilterExpr; private getPeriodStartExpr; getPeriodInsightsBatchQuery({ periodUnitToCompactFrom, compactionBatchSize, maxAgeInDays, }: { periodUnitToCompactFrom: PeriodUnit; compactionBatchSize: number; maxAgeInDays: number; }): SelectQueryBuilder<{ id: number; metaId: number; type: string; value: number; periodStart: Date; }>; private getAggregationQuery; compactSourceDataIntoInsightPeriod({ sourceBatchQuery, sourceTableName, periodUnitToCompactInto, }: { sourceBatchQuery: SelectQueryBuilder<{ id: number; metaId: number; type: string; value: number; periodStart: Date; }>; sourceTableName?: string; periodUnitToCompactInto: PeriodUnit; }): Promise<number>; getPreviousAndCurrentPeriodTypeAggregates({ startDate, endDate, projectId, timeZone, accessFilter, }: { projectId?: string; startDate: Date; endDate: Date; accessFilter?: InsightsAccessFilter; timeZone?: string; }): Promise<Array<{ period: 'previous' | 'current'; type: 0 | 1 | 2 | 3; total_value: string | number; }>>; private parseSortingParams; private countInsightsByWorkflowGroups; getInsightsByWorkflow({ startDate, endDate, skip, take, sortBy, projectId, timeZone, accessFilter, }: { skip?: number; take?: number; sortBy?: string; projectId?: string; startDate: Date; endDate: Date; timeZone?: string; accessFilter?: InsightsAccessFilter; }): Promise<{ count: number; rows: { workflowId: string | null; workflowName: string; projectId: string | null; projectName: string; total: number; succeeded: number; failed: number; failureRate: number; runTime: number; averageRunTime: number; timeSaved: number; }[]; }>; getInsightsByTime({ periodUnit, insightTypes, projectId, startDate, endDate, timeZone, accessFilter, }: { periodUnit: PeriodUnit; insightTypes: TypeUnit[]; projectId?: string; startDate: Date; endDate: Date; timeZone?: string; accessFilter?: InsightsAccessFilter; }): Promise<{ periodStart: string; runTime?: number | undefined; succeeded?: number | undefined; failed?: number | undefined; timeSaved?: number | undefined; }[]>; pruneOldData(maxAgeInDays: number): Promise<{ affected: number | null | undefined; }>; getEarliestDataDate(): Promise<Date | null>; }