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