diff --git a/app/api/qr-code/generate/route.ts b/app/api/qr-code/generate/route.ts index 4365ba2..ec8bef3 100644 --- a/app/api/qr-code/generate/route.ts +++ b/app/api/qr-code/generate/route.ts @@ -9,13 +9,19 @@ import { validateQRData, sanitizeQRData } from '@/src/utils/qrDataValidator'; import { generateCalculatorQRCode } from '@/src/utils/qrCodeGenerator'; export async function POST(request: NextRequest) { + console.log('[QR API] POST /api/qr-code/generate - Request received'); + try { // Parse request body const body = await request.json(); + console.log('[QR API] Request body parsed:', JSON.stringify(body, null, 2)); // Validate data + console.log('[QR API] Validating QR data...'); const validationResult = validateQRData(body); + if (!validationResult.valid) { + console.error('[QR API] Validation failed:', validationResult.error); return NextResponse.json( { success: false, @@ -24,19 +30,24 @@ export async function POST(request: NextRequest) { { status: 400 } ); } + console.log('[QR API] Validation successful'); const data = validationResult.data as QRCalculatorData; // Sanitize data to remove any unnecessary fields const cleanedData = sanitizeQRData(data); + console.log('[QR API] Data sanitized'); // Get base URL from request const protocol = request.headers.get('x-forwarded-proto') || 'https'; const host = request.headers.get('host') || 'localhost:3000'; const baseUrl = `${protocol}://${host}`; + console.log('[QR API] Base URL:', baseUrl); // Generate QR code + console.log('[QR API] Generating QR code...'); const { dataURL, svg, url } = await generateCalculatorQRCode(cleanedData, baseUrl); + console.log('[QR API] QR code generated successfully, URL:', url); // Set expiration time (30 days from now) const expiresAt = new Date(); @@ -50,12 +61,14 @@ export async function POST(request: NextRequest) { expiresAt: expiresAt.toISOString(), }; + console.log('[QR API] Sending success response'); return NextResponse.json({ success: true, data: response, }); } catch (error) { - console.error('Error generating QR code:', error); + console.error('[QR API] Error generating QR code:', error); + console.error('[QR API] Error stack:', error instanceof Error ? error.stack : 'No stack trace'); return NextResponse.json( { @@ -69,6 +82,7 @@ export async function POST(request: NextRequest) { // Return method not allowed for other HTTP methods export async function GET() { + console.log('[QR API] GET /api/qr-code/generate - Method not allowed'); return NextResponse.json( { success: false,