import { isAdminVerified } from '../../utils/mobileReleases' import { removeFromBlacklist, isValidBlacklistNumber } from '../../utils/telephony/blacklist' /** * DELETE /api/telephony/blacklist { number } * * Admin-only. Removes `number` from the FreePBX Blacklist (astdb DBDel) — effective * immediately, the dialplan reads astdb on every inbound call. */ export default defineEventHandler(async (event) => { const config = useRuntimeConfig() if ((config as any).asterisk?.enabled !== true) return { status: 503, message: 'Telefonanlage nicht aktiviert' } const token = await getTokenHelper(event) if (!token) throw createError({ statusCode: 401, statusMessage: 'Unauthorized' }) const admin = await isAdminVerified(event, token) if (!admin) throw createError({ statusCode: 403, statusMessage: 'Nur für Administratoren' }) const body: any = await readBody(event).catch(() => ({})) const number = String(body?.number || '').trim() if (!isValidBlacklistNumber(number)) return { status: 400, message: 'Ungültige Telefonnummer' } try { await removeFromBlacklist(number) return { status: 200, number } } catch (err: any) { console.warn('[blacklist] remove failed:', err?.statusMessage || err?.message || err) return { status: Number(err?.statusCode || 502), message: err?.statusMessage || 'Entsperren fehlgeschlagen' } } })