/** * DELETE /api/instances/:id * Delete an instance */ import { query } from '../../../utils/database' import { baileysManager } from '../../../services/baileys/manager' import { clearAuthState } from '../../../services/baileys/auth-state' export default defineEventHandler(async (event) => { const username = getHeader(event, 'x-authentik-username') if (!username) { throw createError({ statusCode: 401, message: 'Unauthorized' }) } const id = getRouterParam(event, 'id') // Check if instance exists const result = await query<{ id: string }>( 'SELECT id FROM instances WHERE id = $1', [id] ) if (result.rows.length === 0) { throw createError({ statusCode: 404, message: 'Instance not found' }) } // Disconnect if connected try { await baileysManager.disconnect(id!) } catch (error) { // Ignore disconnect errors } // Clear auth state await clearAuthState(id!) // Delete from database (cascades to related tables) await query('DELETE FROM instances WHERE id = $1', [id]) return { success: true } })