import { getMinioClient } from '~/server/utils/minio'; export default defineEventHandler(async (event) => { const xTagHeader = getRequestHeader(event, "x-tag"); console.log('[EOI Delete] Request received with x-tag:', xTagHeader); if (!xTagHeader || (xTagHeader !== "094ut234" && xTagHeader !== "pjnvü1230")) { console.error('[EOI Delete] Authentication failed - invalid x-tag'); throw createError({ statusCode: 401, statusMessage: "unauthenticated" }); } try { const body = await readBody(event); const { interestId } = body; console.log('[EOI Delete] Interest ID:', interestId); if (!interestId) { console.error('[EOI Delete] No interest ID provided'); throw createError({ statusCode: 400, statusMessage: 'Interest ID is required', }); } // Get current interest data to find EOI documents const interest = await $fetch(`/api/get-interest-by-id`, { headers: { 'x-tag': xTagHeader, }, params: { id: interestId, }, }); const eoiDocuments = interest['EOI Document'] || []; console.log('[EOI Delete] Found EOI documents:', eoiDocuments); // Delete all EOI documents from MinIO const client = getMinioClient(); for (const doc of eoiDocuments) { const filename = (doc as any).filename; if (filename) { try { console.log('[EOI Delete] Deleting file from MinIO:', filename); await client.removeObject('client-portal', filename); console.log('[EOI Delete] Successfully deleted:', filename); } catch (error: any) { console.error('[EOI Delete] Failed to delete file:', filename, error); // Continue with other files even if one fails } } } // Reset interest fields const updateData = { 'EOI Status': 'Awaiting Further Details', 'Sales Process Level': 'Specific Qualified Interest', 'EOI Document': undefined, 'EOI Time Sent': undefined, 'Signature Link Client': undefined, 'Signature Link CC': undefined, 'Signature Link Developer': undefined, 'EmbeddedSignatureLinkClient': undefined, 'EmbeddedSignatureLinkCC': undefined, 'EmbeddedSignatureLinkDeveloper': undefined, 'Documeso ID': undefined, 'documensoID': undefined, 'reminder_enabled': false }; console.log('[EOI Delete] Resetting interest fields'); // Update the interest await $fetch('/api/update-interest', { method: 'POST', headers: { 'x-tag': xTagHeader, }, body: { id: interestId, data: updateData } }); console.log('[EOI Delete] Delete completed successfully'); return { success: true, message: 'EOI document deleted successfully', }; } catch (error: any) { console.error('[EOI Delete] Failed to delete EOI document:', error); console.error('[EOI Delete] Error stack:', error.stack); throw createError({ statusCode: 500, statusMessage: error.message || 'Failed to delete EOI document', }); } });