All files / redis-smq-monitor-app/src/services global-time-series.service.ts

100% Statements 20/20
100% Branches 1/1
100% Functions 5/5
100% Lines 20/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 4957x   57x 57x 57x         57x 57x       3x       1x 1x     1x       1x 1x     1x       1x 1x     1x       3x 3x 3x   3x    
import { promisifyAll } from 'bluebird';
import { TimeSeriesRequestDTO } from '../common/dto/time-series/time-series-request.DTO';
import { GlobalAcknowledgedTimeSeries } from '../plugins/message-rate/consumer/global-acknowledged-time-series';
import { GlobalDeadLetteredTimeSeries } from '../plugins/message-rate/consumer/global-dead-lettered-time-series';
import { GlobalPublishedTimeSeries } from '../plugins/message-rate/producer/global-published-time-series';
import { RedisClient } from 'redis-smq-common';
import { TRegistry } from '../registry';
 
export class GlobalTimeSeriesService {
  protected static instance: GlobalTimeSeriesService | null = null;
  protected redisClient: RedisClient;
 
  protected constructor(redisClient: RedisClient) {
    this.redisClient = redisClient;
  }
 
  async acknowledged(args: TimeSeriesRequestDTO) {
    const { from, to } = args;
    const timeSeries = promisifyAll(
      GlobalAcknowledgedTimeSeries(this.redisClient),
    );
    return timeSeries.getRangeAsync(from, to);
  }
 
  async deadLettered(args: TimeSeriesRequestDTO) {
    const { from, to } = args;
    const timeSeries = promisifyAll(
      GlobalDeadLetteredTimeSeries(this.redisClient),
    );
    return timeSeries.getRangeAsync(from, to);
  }
 
  async published(args: TimeSeriesRequestDTO) {
    const { from, to } = args;
    const timeSeries = promisifyAll(
      GlobalPublishedTimeSeries(this.redisClient),
    );
    return timeSeries.getRangeAsync(from, to);
  }
 
  static async getInstance(registry: TRegistry) {
    if (!GlobalTimeSeriesService.instance) {
      const redis = registry.getItem('redis');
      GlobalTimeSeriesService.instance = new GlobalTimeSeriesService(redis);
    }
    return GlobalTimeSeriesService.instance;
  }
}