From 8a7923b1f23794fa3094ea428bcb32c5f4504c3d Mon Sep 17 00:00:00 2001 From: AyrisAI Date: Thu, 14 May 2026 18:58:15 +0300 Subject: [PATCH] Update webhook to use 'snippet' field and unify notification logic --- app/api/webhooks/mail-signal/route.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/api/webhooks/mail-signal/route.ts b/app/api/webhooks/mail-signal/route.ts index b7cf705..0a2fe58 100644 --- a/app/api/webhooks/mail-signal/route.ts +++ b/app/api/webhooks/mail-signal/route.ts @@ -15,7 +15,7 @@ export async function POST(request: Request) { } const body = await request.json(); - const { to, event, subject: incomingSubject, body: incomingBody, from: incomingFrom } = body; + const { to, event, subject: incomingSubject, snippet: incomingSnippet, from: incomingFrom } = body; console.log(`📩 Webhook Sinyali Alındı! Alıcı: ${to}`); @@ -31,14 +31,14 @@ export async function POST(request: Request) { return NextResponse.json({ success: true, message: 'No mapping found' }); } - // 2. Mail İçeriğini Belirle (Ya gelen body'den ya da IMAP'ten) + // 2. Mail İçeriğini Belirle let mailData = null; - if (incomingSubject && incomingBody) { - console.log("[Signal] İçerik worker'dan hazır geldi."); + if (incomingSubject || incomingSnippet) { + console.log(`[Signal] İçerik worker'dan hazır geldi: ${incomingSubject}`); mailData = { - subject: incomingSubject, - text: incomingBody, + subject: incomingSubject || "(Konu Yok)", + text: incomingSnippet || "", from: incomingFrom || "Bilinmiyor" }; } else { @@ -51,20 +51,18 @@ export async function POST(request: Request) { return NextResponse.json({ success: false, error: 'Could not fetch mail' }, { status: 500 }); } - console.log(`[Signal] Mail İşleniyor: "${mailData.subject}"`); - // 3. İçerik Analizi (BMW, Penti vb.) let processed = false; let extraInfo = ""; - const content = (mailData.subject + " " + mailData.text).toLowerCase(); + const analysisContent = (mailData.subject + " " + mailData.text).toLowerCase(); - if (content.includes("bmw") || content.includes("tamir")) { + if (analysisContent.includes("bmw") || analysisContent.includes("tamir")) { console.log("🚗 [Signal] BMW/Tamir içerikli mail tespit edildi!"); extraInfo = "🚗 BMW/Tamir İlgili İçerik"; processed = true; } - if (content.includes("penti") || content.includes("sipariş")) { + if (analysisContent.includes("penti") || analysisContent.includes("sipariş")) { console.log("🛍️ [Signal] Penti/Sipariş içerikli mail tespit edildi!"); extraInfo = "🛍️ Penti/Sipariş İlgili İçerik"; processed = true; @@ -95,7 +93,8 @@ export async function POST(request: Request) { success: true, processed, notification: notificationResult.status, - subject: mailData.subject + subject: mailData.subject, + mode: incomingSubject ? 'worker-data' : 'imap-fallback' }); } catch (error: any) {