|
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 | from: "Acme <onboarding@resend.dev>", // Pear AI <accounts@pear.ai> |
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