eletrotupi / tcc/ api/src/lib/queue/processors/mail.tsd5dbfbd54d2fb3166d9d8ccdd14000bdcfb0dfdb
764 B | 28 lines Raw
1
import { Job } from 'bullmq';
2
import {
3
  MailJobName, MailJobData,
4
  WelcomeEmailPayload,
5
  PasswordResetPayload,
6
} from '@app/lib/queue/types';
7

8
export async function mailProcessor(job: Job<MailJobData['data']>): Promise<void> {
9
  // job.name is the discriminant
10
  switch (job.name as MailJobName) {
11
    case MailJobName.WelcomeEmail: {
12
      const data = job.data as WelcomeEmailPayload;
13
      // await sendWelcomeEmail(data.userId);
14

15
      console.log("Dispatching an welcome email", data);
16
      break;
17
    }
18

19
    case MailJobName.PasswordReset: {
20
      const data = job.data as PasswordResetPayload;
21
      // await sendPasswordResetEmail(data.userId, data.token);
22
      break;
23
    }
24

25
    default:
26
      throw new Error(`Unknown mail job: ${job.name}`);
27
  }
28
}