Made it so, when using the batch code generator, it sends e-mails to everyone
This commit is contained in:
@@ -7,6 +7,7 @@ import {sessionOptions} from "@/lib/session";
|
||||
import {Type} from "@/interfaces/user";
|
||||
import {PERMISSIONS} from "@/constants/userPermissions";
|
||||
import {uuidv4} from "@firebase/util";
|
||||
import {prepareMailer, prepareMailOptions} from "@/email";
|
||||
|
||||
const db = getFirestore(app);
|
||||
|
||||
@@ -18,7 +19,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
return;
|
||||
}
|
||||
|
||||
const {type, codes} = req.body as {type: Type; codes: string[]};
|
||||
const {type, codes, emails} = req.body as {type: Type; codes: string[]; emails?: string[]};
|
||||
const permission = PERMISSIONS.generateCode[type];
|
||||
|
||||
if (!permission.includes(req.session.user.type)) {
|
||||
@@ -26,10 +27,27 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const code of codes) {
|
||||
const codePromises = codes.map(async (code, index) => {
|
||||
const codeRef = doc(db, "codes", uuidv4());
|
||||
await setDoc(codeRef, {type, code});
|
||||
}
|
||||
|
||||
res.status(200).json({ok: true});
|
||||
if (emails && emails.length > index) {
|
||||
const transport = prepareMailer();
|
||||
const mailOptions = prepareMailOptions(
|
||||
{
|
||||
type,
|
||||
code,
|
||||
},
|
||||
[emails[index]],
|
||||
"EnCoach Registration",
|
||||
"main",
|
||||
);
|
||||
|
||||
await transport.sendMail(mailOptions);
|
||||
}
|
||||
});
|
||||
|
||||
Promise.all(codePromises).then(() => {
|
||||
res.status(200).json({ok: true});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user