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 49 50 51 | import { Processor, WorkerHost } from '@nestjs/bullmq'; import { Job } from 'bullmq'; import { Logger } from '@nestjs/common'; @Processor('leave-general-processing') export class LeaveGeneralProcessor extends WorkerHost { private readonly logger = new Logger(LeaveGeneralProcessor.name); async process(job: Job<any, any, string>): Promise<any> { const { tenantId } = job.data; this.logger.log( `Processing general leave job: ${job.name} for tenant ${tenantId}`, ); switch (job.name) { case 'leave.request.reminder': case 'leave.approval.reminder': case 'leave.approval.escalate': case 'leave.return-to-work.reminder': case 'leave.document-reminder': this.logger.log(`Sending notification reminders for job ${job.name}`); return { status: 'notifications_sent' }; case 'leave.period.close': case 'leave.period.open': this.logger.log(`Leave period event processed`); return { status: 'period_processed' }; case 'leave.payroll-summary.generate': this.logger.log(`Generating payroll summary`); return { status: 'payroll_summary_generated' }; case 'leave.calendar-cache.refresh': this.logger.log(`Refreshed calendar caches`); return { status: 'cache_refreshed' }; case 'leave.dashboard.aggregate': this.logger.log(`Daily metrics aggregated`); return { status: 'metrics_aggregated' }; case 'leave.import.execute': case 'leave.export.generate': this.logger.log(`Bulk data transfer executed`); return { status: 'transfer_completed' }; default: return { status: 'unsupported' }; } } } |