summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael <mail@raphaelkabo.com>2025-02-11 23:43:09 +0000
committerGitHub <noreply@github.com>2025-02-11 23:43:09 +0000
commit51a0ecb536b86147ceb27901cc22b3ada8e06a6a (patch)
treec158a758c650885cb9577e4d4d222985e0125f67
parentd985b8d278f3df5699bac15f49e1316628a74c63 (diff)
parente89c3425eefadedce96582f0f5e31dcb692792d3 (diff)
Merge branch 'main' into instance-information
-rw-r--r--.github/workflows/ci.yaml6
-rw-r--r--src/lib/email.ts11
-rw-r--r--src/routes/event.ts9
-rw-r--r--src/routes/group.ts1
-rw-r--r--src/routes/magicLink.ts1
5 files changed, 24 insertions, 4 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index a818c17..c10d1d7 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -30,7 +30,7 @@ jobs:
continue-on-error: true
- name: Save build folder
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: dist
if-no-files-found: error
@@ -52,7 +52,7 @@ jobs:
run: cp config/config.example.toml config/config.toml
- name: Download the build folder
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: dist
path: dist
@@ -69,7 +69,7 @@ jobs:
CYPRESS: true
- name: Upload screenshots
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
diff --git a/src/lib/email.ts b/src/lib/email.ts
index 40b5200..82dd48e 100644
--- a/src/lib/email.ts
+++ b/src/lib/email.ts
@@ -83,6 +83,7 @@ export const initEmailService = async (): Promise<boolean> => {
export const sendEmail = async (
to: string,
+ bcc: string,
subject: string,
text: string,
html?: string,
@@ -92,6 +93,7 @@ export const sendEmail = async (
try {
await sgMail.send({
to,
+ bcc,
from: config.general.email,
subject: `${config.general.site_name}: ${subject}`,
text,
@@ -123,8 +125,14 @@ export const sendEmail = async (
const nodemailerTransporter =
nodemailer.createTransport(nodemailerConfig);
await nodemailerTransporter.sendMail({
+ envelope: {
+ from: config.general.email,
+ to,
+ bcc,
+ },
from: config.general.email,
to,
+ bcc,
subject,
text,
html,
@@ -141,6 +149,7 @@ export const sendEmail = async (
export const sendEmailFromTemplate = async (
to: string,
+ bcc: string,
subject: string,
template: EmailTemplate,
templateData: Record<string, unknown>,
@@ -159,5 +168,5 @@ export const sendEmailFromTemplate = async (
`${template}/${template}Text`,
templateData,
);
- return await sendEmail(to, subject, text, html);
+ return await sendEmail(to, bcc, subject, text, html);
};
diff --git a/src/routes/event.ts b/src/routes/event.ts
index 1b79f12..de5cb4c 100644
--- a/src/routes/event.ts
+++ b/src/routes/event.ts
@@ -27,6 +27,9 @@ import crypto from "crypto";
import ical from "ical";
import { markdownToSanitizedHTML } from "../util/markdown.js";
import { checkMagicLink, getConfigMiddleware } from "../lib/middleware.js";
+import { getConfig } from "../lib/config.js";
+const config = getConfig();
+
const storage = multer.memoryStorage();
// Accept only JPEG, GIF or PNG images, up to 10MB
@@ -193,6 +196,7 @@ router.post(
if (eventData.creatorEmail && req.app.locals.sendEmails) {
sendEmailFromTemplate(
eventData.creatorEmail,
+ "",
`${eventData.eventName}`,
"createEvent",
{
@@ -229,6 +233,7 @@ router.post(
subscribers?.forEach((emailAddress) => {
sendEmailFromTemplate(
emailAddress,
+ "",
`New event in ${eventGroup.name}`,
"eventGroupUpdated",
{
@@ -493,6 +498,7 @@ router.put(
.map((o) => o.email);
if (attendeeEmails?.length) {
sendEmailFromTemplate(
+ config.general.email,
attendeeEmails.join(","),
`${event.name} was just edited`,
"editEvent",
@@ -608,6 +614,7 @@ router.post(
if (creatorEmail && req.app.locals.sendEmails) {
sendEmailFromTemplate(
creatorEmail,
+ "",
`${importedEventData.summary}`,
"createEvent",
{
@@ -688,6 +695,7 @@ router.delete(
if (attendeeEmail && req.app.locals.sendEmails) {
await sendEmailFromTemplate(
attendeeEmail,
+ "",
"You have been removed from an event",
"unattendEvent",
{
@@ -739,6 +747,7 @@ router.get(
if (req.app.locals.sendEmails && attendee.email) {
sendEmailFromTemplate(
attendee.email,
+ "",
`You have been removed from ${event.name}`,
"unattendEvent",
{
diff --git a/src/routes/group.ts b/src/routes/group.ts
index 1bbf501..9f4105c 100644
--- a/src/routes/group.ts
+++ b/src/routes/group.ts
@@ -95,6 +95,7 @@ router.post(
if (groupData.creatorEmail && req.app.locals.sendEmails) {
sendEmailFromTemplate(
groupData.creatorEmail,
+ "",
`${eventGroup.name}`,
"createEventGroup",
{
diff --git a/src/routes/magicLink.ts b/src/routes/magicLink.ts
index 499d0a4..b4afca6 100644
--- a/src/routes/magicLink.ts
+++ b/src/routes/magicLink.ts
@@ -50,6 +50,7 @@ router.post("/magic-link/event/create", async (req: Request, res: Response) => {
sendEmailFromTemplate(
email,
+ "",
`Magic link to create an event`,
"createEventMagicLink",
{