import { NextRequest, NextResponse } from "next/server"; import { cookies } from "next/headers"; const API_BASE_URL = process.env.API_BASE_URL || process.env.NEXT_PUBLIC_API_BASE_URL; async function getAuthHeader() { const cookieStore = await cookies(); const token = cookieStore.get("session_token")?.value; if (!token) throw new Error("Unauthorized"); return { Authorization: `Bearer ${token}` }; } export async function PUT( request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { try { const resolvedParams = await params; const headers = await getAuthHeader(); const body = await request.json(); const res = await fetch(`${API_BASE_URL}/api/email/${resolvedParams.id}`, { method: "PUT", headers: { ...headers, "Content-Type": "application/json" }, body: JSON.stringify(body), }); if (!res.ok) { return NextResponse.json( { error: await res.text() }, { status: res.status } ); } return NextResponse.json(await res.json()); } catch (err: any) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } } export async function DELETE( request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { try { const resolvedParams = await params; const headers = await getAuthHeader(); const res = await fetch(`${API_BASE_URL}/api/email/${resolvedParams.id}`, { method: "DELETE", headers, }); if (!res.ok) { return NextResponse.json( { error: await res.text() }, { status: res.status } ); } return NextResponse.json({ ok: true }); } catch (err: any) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } }