fixed #104
This commit is contained in:
@@ -7,55 +7,59 @@ export const handleParticipantFinished = async (
|
||||
participant: Participant,
|
||||
user: User,
|
||||
) => {
|
||||
const discordAccount = await prisma.discordAccount.findFirst({
|
||||
where: {
|
||||
userId: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
const badgedToAdd = event.finishedBadges.filter((badge) => {
|
||||
return !user.badges.includes(badge);
|
||||
});
|
||||
const permissionsToAdd = event.finishedPermissions.filter((permission) => {
|
||||
return !user.permissions.includes(permission);
|
||||
});
|
||||
|
||||
await prisma.user.update({
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
data: {
|
||||
badges: {
|
||||
push: badgedToAdd,
|
||||
try {
|
||||
const discordAccount = await prisma.discordAccount.findFirst({
|
||||
where: {
|
||||
userId: user.id,
|
||||
},
|
||||
permissions: {
|
||||
push: permissionsToAdd,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
if (discordAccount) {
|
||||
await setStandardName({
|
||||
memberId: discordAccount.discordId,
|
||||
userId: user.id,
|
||||
});
|
||||
}
|
||||
await sendCourseCompletedEmail(user.email, user, event);
|
||||
|
||||
await prisma.participant.update({
|
||||
where: {
|
||||
id: participant.id,
|
||||
},
|
||||
data: {
|
||||
statusLog: {
|
||||
push: {
|
||||
event: "Berechtigungen und Badges vergeben",
|
||||
timestamp: new Date(),
|
||||
user: "system",
|
||||
const badgedToAdd = event.finishedBadges.filter((badge) => {
|
||||
return !user.badges.includes(badge);
|
||||
});
|
||||
const permissionsToAdd = event.finishedPermissions.filter((permission) => {
|
||||
return !user.permissions.includes(permission);
|
||||
});
|
||||
|
||||
await prisma.user.update({
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
data: {
|
||||
badges: {
|
||||
push: badgedToAdd,
|
||||
},
|
||||
permissions: {
|
||||
push: permissionsToAdd,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
if (discordAccount) {
|
||||
await setStandardName({
|
||||
memberId: discordAccount.discordId,
|
||||
userId: user.id,
|
||||
});
|
||||
}
|
||||
await sendCourseCompletedEmail(user.email, user, event);
|
||||
|
||||
await prisma.participant.update({
|
||||
where: {
|
||||
id: participant.id,
|
||||
},
|
||||
data: {
|
||||
statusLog: {
|
||||
push: {
|
||||
event: "Berechtigungen und Badges vergeben",
|
||||
timestamp: new Date(),
|
||||
user: "system",
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error handling participant finished:", error);
|
||||
}
|
||||
};
|
||||
|
||||
export const handleParticipantEnrolled = async (
|
||||
|
||||
@@ -34,43 +34,61 @@ const initTransporter = () => {
|
||||
initTransporter();
|
||||
|
||||
export const sendCourseCompletedEmail = async (to: string, user: User, event: Event) => {
|
||||
const emailHtml = await renderCourseCompleted({ user, event });
|
||||
try {
|
||||
const emailHtml = await renderCourseCompleted({ user, event });
|
||||
|
||||
if (!transporter) {
|
||||
console.error("Transporter is not initialized");
|
||||
return;
|
||||
if (!transporter) {
|
||||
console.error("Transporter is not initialized");
|
||||
return;
|
||||
}
|
||||
await sendMail(to, `Kurs ${event.name} erfolgreich abgeschlossen`, emailHtml);
|
||||
} catch (error) {
|
||||
console.error("Error sending course completed email:", error);
|
||||
}
|
||||
sendMail(to, `Kurs ${event.name} erfolgreich abgeschlossen`, emailHtml);
|
||||
};
|
||||
|
||||
export const sendPasswordChanged = async (to: string, user: User, password: string) => {
|
||||
const emailHtml = await renderPasswordChanged({ user, password });
|
||||
try {
|
||||
const emailHtml = await renderPasswordChanged({ user, password });
|
||||
|
||||
await sendMail(to, `Dein Passwort wurde geändert`, emailHtml);
|
||||
await sendMail(to, `Dein Passwort wurde geändert`, emailHtml);
|
||||
} catch (error) {}
|
||||
};
|
||||
|
||||
export const sendEmailVerification = async (to: string, user: User, code: string) => {
|
||||
const emailHtml = await renderVerificationCode({
|
||||
user,
|
||||
code,
|
||||
});
|
||||
await sendMail(to, "Bestätige deine E-Mail-Adresse", emailHtml);
|
||||
try {
|
||||
const emailHtml = await renderVerificationCode({
|
||||
user,
|
||||
code,
|
||||
});
|
||||
await sendMail(to, "Bestätige deine E-Mail-Adresse", emailHtml);
|
||||
} catch (error) {
|
||||
console.error("Error sending email verification:", error);
|
||||
}
|
||||
};
|
||||
|
||||
export const sendBannEmail = async (to: string, user: User, staffName: string) => {
|
||||
const emailHtml = await renderBannNotice({
|
||||
user,
|
||||
staffName,
|
||||
});
|
||||
await sendMail(to, "Deine Sperrung bei Virtual Air Rescue", emailHtml);
|
||||
try {
|
||||
const emailHtml = await renderBannNotice({
|
||||
user,
|
||||
staffName,
|
||||
});
|
||||
await sendMail(to, "Deine Sperrung bei Virtual Air Rescue", emailHtml);
|
||||
} catch (error) {
|
||||
console.error("Error sending ban email:", error);
|
||||
}
|
||||
};
|
||||
|
||||
export const sendTimebannEmail = async (to: string, user: User, staffName: string) => {
|
||||
const emailHtml = await renderTimeBanNotice({
|
||||
user,
|
||||
staffName,
|
||||
});
|
||||
await sendMail(to, "Deine vorrübergehende Sperrung bei Virtual Air Rescue", emailHtml);
|
||||
try {
|
||||
const emailHtml = await renderTimeBanNotice({
|
||||
user,
|
||||
staffName,
|
||||
});
|
||||
await sendMail(to, "Deine vorrübergehende Sperrung bei Virtual Air Rescue", emailHtml);
|
||||
} catch (error) {
|
||||
console.error("Error sending time ban email:", error);
|
||||
}
|
||||
};
|
||||
|
||||
export const sendMail = async (to: string, subject: string, html: string) =>
|
||||
|
||||
Reference in New Issue
Block a user