UNPKG

@pinelab/vendure-plugin-metrics

Version:

Vendure plugin measuring and visualizing e-commerce metrics

42 lines (41 loc) 2.21 kB
import { OnModuleInit } from '@nestjs/common'; import { ID, JobQueueService, Order, ProductVariant, ProductVariantService, RequestContext, TransactionalConnection } from '@vendure/core'; import { MetricsPluginOptions } from '../metrics.plugin'; import { AdvancedMetricSummary, AdvancedMetricSummaryInput } from '../ui/generated/graphql'; import { MetricStrategy } from './metric-strategy'; import { MetricSummary } from '../entities/metric-summary.entity'; import { RequestService } from './request-service'; export declare class MetricsService implements OnModuleInit { private variantService; private options; private connection; private jobQueueService; private requestService; private generateMetricsQueue; readonly metricStrategies: MetricStrategy[]; constructor(variantService: ProductVariantService, options: MetricsPluginOptions, connection: TransactionalConnection, jobQueueService: JobQueueService, requestService: RequestService); onModuleInit(): Promise<void>; /** * Get metrics from cache, or create a job and keep polling the cache */ getMetrics(ctx: RequestContext, input?: AdvancedMetricSummaryInput): Promise<AdvancedMetricSummary[]>; /** * Get all metrics from cache. * If any of the metrics is missing, returns undefined */ getAllMetricsFromCache(ctx: RequestContext, from: Date, to: Date, variantIds: ID[]): Promise<AdvancedMetricSummary[] | undefined>; /** * Generate metrics for each strategy, and store them in the cache. */ handleMetricsJob(ctx: RequestContext, startDate: Date, endDate: Date, variantIds: ID[]): Promise<AdvancedMetricSummary[] | undefined>; /** * Get orders with their lines in the given date range */ getPlacedOrders(ctx: RequestContext, from: Date, to: Date, variants?: ProductVariant[]): Promise<Order[]>; findMetricSummary(ctx: RequestContext, cacheKey: string): Promise<MetricSummary | undefined | null>; saveMetricSummary(ctx: RequestContext, cacheKey: string, summary: AdvancedMetricSummary): Promise<MetricSummary | undefined | null>; /** * Create an identifier to store metrics in the cache. */ private createCacheKey; }