Files
Tom Moor b2aad71cb4 chore: Move welcome email to processor (#11939)
* chore: Move welcome email to processor

* fix: Restore welcome email on invite acceptance
2026-04-02 20:16:47 -04:00

32 lines
971 B
TypeScript

import WelcomeEmail from "@server/emails/templates/WelcomeEmail";
import { Team, User } from "@server/models";
import type { Event, UserEvent } from "@server/types";
import BaseProcessor from "./BaseProcessor";
export default class UserCreatedProcessor extends BaseProcessor {
static applicableEvents: Event["name"][] = [
"users.create",
"users.invite_accepted",
];
async perform(event: UserEvent) {
const [user, team] = await Promise.all([
User.findByPk(event.userId, { rejectOnEmpty: true }),
Team.findByPk(event.teamId, { rejectOnEmpty: true }),
]);
// Invited users receive an InviteEmail at invite time, and a WelcomeEmail
// when they accept the invite and sign in for the first time.
if (event.name === "users.create" && user.isInvited) {
return;
}
await new WelcomeEmail({
to: user.email,
language: user.language,
role: user.role,
teamUrl: team.url,
}).schedule();
}
}