SPB Git

Repository Public

route.ts 1.4 KB 32 lines typescript

1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// /api/admin/mail/preview — aperçu FIDÈLE d'un gabarit avant envoi : même3// moteur de rendu que l'envoi (mail-templates.ts), avec la vraie signature4// de l'admin connecté. Retourne l'HTML complet, affiché dans un iframe5// sandbox côté composeur. Session admin requise.6import { NextRequest, NextResponse } from "next/server";7import { getAdminSession } from "@/lib/comms/admin-auth";8import { findAdminById } from "@/lib/comms/db";9import { renderMailTemplate, templateById } from "@/lib/comms/mail-templates";1011export async function POST(req: NextRequest) {12  const session = await getAdminSession();13  if (!session)14    return NextResponse.json({ error: "Non autorisé." }, { status: 401 });15  const admin = findAdminById(session.id);16  const body = (await req.json().catch(() => null)) as {17    template?: string;18    subject?: string;19    body?: string;20  } | null;21  const { html } = renderMailTemplate({22    templateId: templateById(body?.template ?? "simple").id,23    subject: (body?.subject ?? "").trim().slice(0, 300) || "Sujet de votre courriel",24    body:25      (body?.body ?? "").trim().slice(0, 100_000) ||26      "Votre message apparaîtra ici, mis en forme dans le gabarit choisi.",27    adminName: admin?.display_name ?? session.displayName,28    adminEmail: admin?.email ?? "vous@groupe-ka.com",29  });30  return NextResponse.json({ html });31}32
Files main
Menu

Theme