@pinelab/vendure-plugin-metrics
Version:
Vendure plugin measuring and visualizing e-commerce metrics
42 lines (41 loc) • 2.21 kB
TypeScript
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;
}