chore: Email + mailer refactor (#3342)
* Huge email refactor * fix: One rename too many * comments
This commit is contained in:
@@ -1,15 +1,23 @@
|
||||
import emails from "@server/emails/templates";
|
||||
import { APM } from "@server/logging/tracing";
|
||||
import mailer, { EmailSendOptions, EmailTypes } from "../../mailer";
|
||||
import BaseTask from "./BaseTask";
|
||||
|
||||
type Props = {
|
||||
type: EmailTypes;
|
||||
options: EmailSendOptions;
|
||||
templateName: string;
|
||||
props: Record<string, any>;
|
||||
};
|
||||
|
||||
@APM.trace()
|
||||
export default class EmailTask extends BaseTask<Props> {
|
||||
public async perform(props: Props) {
|
||||
await mailer[props.type](props.options);
|
||||
public async perform({ templateName, props }: Props) {
|
||||
const EmailClass = emails[templateName];
|
||||
if (!EmailClass) {
|
||||
throw new Error(
|
||||
`Email task "${templateName}" template does not exist. Check the file name matches the class name.`
|
||||
);
|
||||
}
|
||||
|
||||
const email = new EmailClass(props);
|
||||
return email.send();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user