feat: split cron into import and mailing jobs
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import { NextResponse } from 'next/server';
|
||||
|
||||
export function ApiResponse(status: number, message: string) {
|
||||
const response = new Response(message, { status });
|
||||
const response = new NextResponse(message, { status });
|
||||
response.headers.set('Access-Control-Allow-Origin', process.env.HOME_URL!);
|
||||
|
||||
return response;
|
||||
|
||||
@@ -5,10 +5,14 @@ type EmailTemplate = {
|
||||
template: JSX.Element;
|
||||
};
|
||||
|
||||
async function sendEmail(to: string[], { subject, template }: EmailTemplate) {
|
||||
export async function sender(
|
||||
to: string[],
|
||||
{ subject, template }: EmailTemplate
|
||||
) {
|
||||
const resend = new Resend(process.env.RESEND_KEY);
|
||||
|
||||
try {
|
||||
// TODO: adjust code once Resend supports batch sending
|
||||
const { error } = await resend.emails.send({
|
||||
from: process.env.RESEND_FROM!,
|
||||
to,
|
||||
@@ -34,22 +38,3 @@ async function sendEmail(to: string[], { subject, template }: EmailTemplate) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
export async function sender(
|
||||
to: string[],
|
||||
{ subject, template }: EmailTemplate
|
||||
) {
|
||||
let success = false;
|
||||
let i = 5;
|
||||
|
||||
while (i < 5) {
|
||||
const sent = await sendEmail(to, { subject, template });
|
||||
if (sent) {
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user