fix: added sender retry and handled fail
This commit is contained in:
@@ -2,7 +2,7 @@ import { NextResponse } from 'next/server';
|
||||
import { z } from 'zod';
|
||||
import NewsletterTemplate from '../../../components/emails/newsletter';
|
||||
import prisma from '../../../prisma/prisma';
|
||||
import { sendEmail } from '../../../utils/sender';
|
||||
import { sender } from '../../../utils/sender';
|
||||
import { NewsDatabaseSchema, NewsSchema } from '../../../utils/types';
|
||||
import { singleNews, topNews } from '../../../utils/urls';
|
||||
|
||||
@@ -69,11 +69,17 @@ export async function GET(request: Request) {
|
||||
.filter((item): item is z.infer<typeof NewsSchema> => item !== undefined)
|
||||
.sort((a, b) => b.score - a.score);
|
||||
|
||||
await sendEmail(
|
||||
const sent = await sender(
|
||||
users.map(user => user.email),
|
||||
NewsletterTemplate(validRankedNews)
|
||||
);
|
||||
|
||||
if (!sent) {
|
||||
return new NextResponse('Internal server error', {
|
||||
status: 500
|
||||
});
|
||||
}
|
||||
|
||||
return new NextResponse(`Newsletter sent to ${users.length} addresses.`, {
|
||||
status: 200
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@ import { z } from 'zod';
|
||||
import SubscribeTemplate from '../../../components/emails/subscribe';
|
||||
import prisma from '../../../prisma/prisma';
|
||||
import { ApiResponse } from '../../../utils/apiResponse';
|
||||
import { sendEmail } from '../../../utils/sender';
|
||||
import { sender } from '../../../utils/sender';
|
||||
import { ResponseSchema, SubscribeFormSchema } from '../../../utils/types';
|
||||
|
||||
export const dynamic = 'force-dynamic'; // defaults to force-static
|
||||
@@ -60,7 +60,11 @@ export async function POST(request: Request) {
|
||||
}
|
||||
});
|
||||
|
||||
await sendEmail([email], SubscribeTemplate(code));
|
||||
const sent = await sender([email], SubscribeTemplate(code));
|
||||
|
||||
if (!sent) {
|
||||
return ApiResponse(500, 'Internal server error');
|
||||
}
|
||||
|
||||
const message: z.infer<typeof ResponseSchema> = {
|
||||
message: `Thank you! You will now receive an email to ${email} to confirm the subscription.`
|
||||
|
||||
@@ -2,7 +2,7 @@ import { z } from 'zod';
|
||||
import UnsubscribeTemplate from '../../../components/emails/unsubscribe';
|
||||
import prisma from '../../../prisma/prisma';
|
||||
import { ApiResponse } from '../../../utils/apiResponse';
|
||||
import { sendEmail } from '../../../utils/sender';
|
||||
import { sender } from '../../../utils/sender';
|
||||
import { ResponseSchema, UnsubscribeFormSchema } from '../../../utils/types';
|
||||
|
||||
export const dynamic = 'force-dynamic'; // defaults to force-static
|
||||
@@ -31,7 +31,11 @@ export async function POST(request: Request) {
|
||||
}
|
||||
});
|
||||
|
||||
await sendEmail([email], UnsubscribeTemplate());
|
||||
const sent = await sender([email], UnsubscribeTemplate());
|
||||
|
||||
if (!sent) {
|
||||
return ApiResponse(500, 'Internal server error');
|
||||
}
|
||||
}
|
||||
|
||||
const message: z.infer<typeof ResponseSchema> = {
|
||||
|
||||
Reference in New Issue
Block a user