Files
outline/server/queues/tasks/EmailTask.ts
2022-04-11 08:04:13 -07:00

22 lines
557 B
TypeScript

import emails from "@server/emails/templates";
import BaseTask from "./BaseTask";
type Props = {
templateName: string;
props: Record<string, any>;
};
export default class EmailTask extends BaseTask<Props> {
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();
}
}