• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

safe-global / safe-client-gateway / 16261453359

14 Jul 2025 08:04AM UTC coverage: 89.505% (-0.2%) from 89.688%
16261453359

Pull #2625

github

LucieFaire
add logging for the export consumer

Signed-off-by: dsh <11198975+LucieFaire@users.noreply.github.com>
Pull Request #2625: feat: Add BullMQ job queue system

3466 of 4236 branches covered (81.82%)

Branch coverage included in aggregate %.

35 of 75 new or added lines in 11 files covered. (46.67%)

20 existing lines in 6 files now uncovered.

12004 of 13048 relevant lines covered (92.0%)

544.7 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/modules/csv-export/csv-export.consumer.ts
NEW
1
import { CSV_EXPORT_QUEUE } from '@/domain/common/entities/jobs.constants';
×
NEW
2
import { LogType } from '@/domain/common/entities/log-type.entity';
×
NEW
3
import { ILoggingService, LoggingService } from '@/logging/logging.interface';
×
4
import { CsvExportJobData } from '@/modules/csv-export/entities/csv-export-job-data.entity';
NEW
5
import { OnWorkerEvent, Processor, WorkerHost } from '@nestjs/bullmq';
×
NEW
6
import { Inject } from '@nestjs/common';
×
NEW
7
import { Job } from 'bullmq';
×
8

9
@Processor(CSV_EXPORT_QUEUE)
NEW
10
export class CsvExportConsumer extends WorkerHost {
×
11
  constructor(
NEW
12
    @Inject(LoggingService) private readonly loggingService: ILoggingService,
×
13
  ) {
NEW
14
    super();
×
15
  }
16

17
  process(job: Job<CsvExportJobData>): Promise<void> {
NEW
18
    throw new Error(`Job ${job.name} is not implemented yet.`);
×
19
  }
20

21
  @OnWorkerEvent('completed')
NEW
22
  onCompleted(job: Job, result: unknown): void {
×
NEW
23
    this.loggingService.info({
×
24
      type: LogType.JobEvent,
25
      source: 'CsvExportConsumer',
26
      event: `Job ${job.id} completed; returned ${result}`,
27
    });
28
  }
29

30
  // Fired when a job fails (after all retries)
31
  @OnWorkerEvent('failed')
NEW
32
  onFailed(job: Job, error: Error): void {
×
NEW
33
    this.loggingService.error({
×
34
      type: LogType.JobError,
35
      source: 'CsvExportConsumer',
36
      event: `Job ${job.id} failed: ${error}`,
37
    });
38
  }
39

40
  // Fired whenever `process()` calls job.updateProgress()
41
  @OnWorkerEvent('progress')
NEW
42
  onProgress(job: Job, progress: number): void {
×
NEW
43
    this.loggingService.info({
×
44
      type: LogType.JobEvent,
45
      source: 'CsvExportConsumer',
46
      event: `Job ${job.id} progress: ${progress}%`,
47
    });
48
  }
49

50
  @OnWorkerEvent('error')
NEW
51
  onWorkerError(error: Error): void {
×
NEW
52
    this.loggingService.error({
×
53
      type: LogType.JobError,
54
      source: 'CsvExportConsumer',
55
      event: `Worker encountered an error: ${error}`,
56
    });
57
  }
58
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc