Update webhook to use 'snippet' field and unify notification logic
This commit is contained in:
@@ -15,7 +15,7 @@ export async function POST(request: Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const body = await request.json();
|
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}`);
|
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' });
|
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;
|
let mailData = null;
|
||||||
|
|
||||||
if (incomingSubject && incomingBody) {
|
if (incomingSubject || incomingSnippet) {
|
||||||
console.log("[Signal] İçerik worker'dan hazır geldi.");
|
console.log(`[Signal] İçerik worker'dan hazır geldi: ${incomingSubject}`);
|
||||||
mailData = {
|
mailData = {
|
||||||
subject: incomingSubject,
|
subject: incomingSubject || "(Konu Yok)",
|
||||||
text: incomingBody,
|
text: incomingSnippet || "",
|
||||||
from: incomingFrom || "Bilinmiyor"
|
from: incomingFrom || "Bilinmiyor"
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
@@ -51,20 +51,18 @@ export async function POST(request: Request) {
|
|||||||
return NextResponse.json({ success: false, error: 'Could not fetch mail' }, { status: 500 });
|
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.)
|
// 3. İçerik Analizi (BMW, Penti vb.)
|
||||||
let processed = false;
|
let processed = false;
|
||||||
let extraInfo = "";
|
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!");
|
console.log("🚗 [Signal] BMW/Tamir içerikli mail tespit edildi!");
|
||||||
extraInfo = "🚗 BMW/Tamir İlgili İçerik";
|
extraInfo = "🚗 BMW/Tamir İlgili İçerik";
|
||||||
processed = true;
|
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!");
|
console.log("🛍️ [Signal] Penti/Sipariş içerikli mail tespit edildi!");
|
||||||
extraInfo = "🛍️ Penti/Sipariş İlgili İçerik";
|
extraInfo = "🛍️ Penti/Sipariş İlgili İçerik";
|
||||||
processed = true;
|
processed = true;
|
||||||
@@ -95,7 +93,8 @@ export async function POST(request: Request) {
|
|||||||
success: true,
|
success: true,
|
||||||
processed,
|
processed,
|
||||||
notification: notificationResult.status,
|
notification: notificationResult.status,
|
||||||
subject: mailData.subject
|
subject: mailData.subject,
|
||||||
|
mode: incomingSubject ? 'worker-data' : 'imap-fallback'
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
|
|||||||
Reference in New Issue
Block a user