import { NextRequest, NextResponse } from "next/server"; export async function POST(request: NextRequest) { const allCookies = request.cookies.getAll(); const zammadURL = process.env.ZAMMAD_URL ?? "http://zammad-nginx:8080"; const signOutURL = `${zammadURL}/api/v1/signout`; const headers = { "Content-Type": "application/json", Accept: "application/json", Cookie: allCookies .map((cookie) => `${cookie.name}=${cookie.value}`) .join("; "), }; // Add timeout to prevent hanging requests const controller = new AbortController(); const timeout = setTimeout(() => controller.abort(), 5000); // 5 second timeout try { await fetch(signOutURL, { headers, signal: controller.signal }); } catch (error) { // Log but don't fail logout if Zammad signout fails console.error('Zammad signout failed:', error); } finally { clearTimeout(timeout); } const cookiePrefixesToRemove = ["_zammad"]; const response = NextResponse.json({ message: "ok" }); for (const cookie of allCookies) { if ( cookiePrefixesToRemove.some((prefix) => cookie.name.startsWith(prefix)) ) { response.cookies.set(cookie.name, "", { path: "/", maxAge: 0 }); } } return response; }