|
1 |
| -import { Resend } from "resend" |
2 |
| -import { SelectEmailTemplate } from "@/components/email-templates" |
3 |
| -import { NextRequest, NextResponse } from "next/server" |
| 1 | +import { Resend } from "resend"; |
| 2 | +import { SelectEmailTemplate } from "@/components/email-templates"; |
| 3 | +import { NextRequest, NextResponse } from "next/server"; |
| 4 | +import { withAuth } from "@/utils/withAuth"; |
4 | 5 |
|
5 |
| -const resend = new Resend(process.env.RESEND_API_KEY!) |
| 6 | +const resend = new Resend(process.env.RESEND_API_KEY!); |
6 | 7 |
|
7 |
| -export async function POST(req: NextRequest) { |
8 |
| - const body = await req.json() |
9 |
| - const { to, subject, data } = body |
10 |
| - const EmailTemplate = SelectEmailTemplate(data) |
| 8 | +async function sendEmail(req: NextRequest) { |
| 9 | + const body = await req.json(); |
| 10 | + const { to, subject, data } = body; |
| 11 | + const EmailTemplate = SelectEmailTemplate(data); |
11 | 12 |
|
12 | 13 | try {
|
13 | 14 | const { data, error } = await resend.emails.send({
|
14 | 15 |
|
15 | 16 | to: [to],
|
16 | 17 | subject,
|
17 | 18 | react: EmailTemplate as JSX.Element,
|
18 |
| - }) |
| 19 | + }); |
19 | 20 |
|
20 | 21 | if (error) {
|
21 |
| - return NextResponse.json({ error, status: 500 }) |
| 22 | + return NextResponse.json({ error, status: 500 }); |
22 | 23 | }
|
23 | 24 |
|
24 |
| - return NextResponse.json({ message: "Email sent!", data, status: 200 }) |
| 25 | + return NextResponse.json({ message: "Email sent!", data, status: 200 }); |
25 | 26 | } catch (error) {
|
26 |
| - return NextResponse.json({ error, status: 500 }) |
| 27 | + return NextResponse.json({ error, status: 500 }); |
27 | 28 | }
|
28 | 29 | }
|
| 30 | + |
| 31 | +export const POST = withAuth(sendEmail); |
0 commit comments