src/app/api/preview-token/route.ts

route·app·0.9 KB · 29 lignes· Voir l'itinéraire
Annotation non disponible

Lance npm run annotate (nécessite ANTHROPIC_API_KEY dans .env.local) pour générer une annotation française par Claude Haiku 4.5.

1 export

GET

Code source· typescript

import { NextRequest, NextResponse } from 'next/server'
import { prisma } from '@/lib/prisma/client'

export async function GET(req: NextRequest) {
  try {
    const token = req.nextUrl.searchParams.get('token')
    if (!token) return NextResponse.json({ error: 'Token manquant' }, { status: 400 })

    const snapshot = await prisma.vitrineSnapshot.findUnique({
      where: { previewToken: token },
      select: {
        id: true, data: true, previewTokenExpiry: true,
        tenantId: true, label: true, createdAt: true
      }
    })

    if (!snapshot) return NextResponse.json({ error: 'Token invalide' }, { status: 404 })

    if (snapshot.previewTokenExpiry && new Date() > snapshot.previewTokenExpiry) {
      return NextResponse.json({ error: 'Token expire' }, { status: 410 })
    }

    return NextResponse.json({ snapshot })
  } catch (e) {
    console.error(e)
    return NextResponse.json({ error: 'Erreur serveur' }, { status: 500 })
  }
}