Ticketanizer-Anbindung: Fehler-/Erfolgs-Logging ergänzt
Bisher wurden Fehler beim Ticket-Anlegen komplett stillschweigend verschluckt (bewusst, damit es die Bewerbung nie blockiert) - das machte es aber unmöglich zu sehen, WARUM ein Ticket nicht ankam. Jetzt wird jeder Versuch (Erfolg wie Fehler, inkl. HTTP-Status und Antworttext) über console.log/console.error protokolliert, sichtbar per `wrangler tail`.
This commit is contained in:
@@ -70,13 +70,20 @@ function ersteNachrichtAufbauen(type, data) {
|
|||||||
export async function bewerbungAlsTicketAnlegen(env, type, data) {
|
export async function bewerbungAlsTicketAnlegen(env, type, data) {
|
||||||
const apiKey = env.TICKETANIZER_API_KEY;
|
const apiKey = env.TICKETANIZER_API_KEY;
|
||||||
const panelId = PANEL_IDS[type];
|
const panelId = PANEL_IDS[type];
|
||||||
if (!apiKey || !panelId) return; // nicht eingerichtet für diesen Bereich — einfach überspringen
|
if (!apiKey) {
|
||||||
|
console.error(`[ticketanizer] TICKETANIZER_API_KEY fehlt — Ticket für "${type}" übersprungen.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!panelId) {
|
||||||
|
console.error(`[ticketanizer] Kein panel_id für Bewerbungstyp "${type}" hinterlegt — übersprungen.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const visitorName = String(data?.name || data?.firma || "Unbekannt").trim().slice(0, 80) || "Unbekannt";
|
const visitorName = String(data?.name || data?.firma || "Unbekannt").trim().slice(0, 80) || "Unbekannt";
|
||||||
const firstMessage = ersteNachrichtAufbauen(type, data);
|
const firstMessage = ersteNachrichtAufbauen(type, data);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await fetch(`${TICKETANIZER_BASIS_URL}/v1/tickets`, {
|
const antwort = await fetch(`${TICKETANIZER_BASIS_URL}/v1/tickets`, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
"X-API-Key": apiKey,
|
"X-API-Key": apiKey,
|
||||||
@@ -88,8 +95,15 @@ export async function bewerbungAlsTicketAnlegen(env, type, data) {
|
|||||||
first_message: firstMessage,
|
first_message: firstMessage,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
} catch {
|
const antwortText = await antwort.text().catch(() => "");
|
||||||
|
if (!antwort.ok) {
|
||||||
|
console.error(`[ticketanizer] Fehler beim Ticket-Anlegen (${type}, panel ${panelId}): HTTP ${antwort.status} — ${antwortText}`);
|
||||||
|
} else {
|
||||||
|
console.log(`[ticketanizer] Ticket angelegt (${type}, panel ${panelId}): ${antwortText}`);
|
||||||
|
}
|
||||||
|
} catch (fehler) {
|
||||||
// Ticketanizer nicht erreichbar o.ä. — die Bewerbung selbst ist trotzdem
|
// Ticketanizer nicht erreichbar o.ä. — die Bewerbung selbst ist trotzdem
|
||||||
// sicher in der eigenen Datenbank gelandet, das darf hier nicht scheitern.
|
// sicher in der eigenen Datenbank gelandet, das darf hier nicht scheitern.
|
||||||
|
console.error(`[ticketanizer] Ausnahme beim Ticket-Anlegen (${type}, panel ${panelId}):`, fehler && fehler.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user