import { revokeProtectedDevice } from "../../../db/protectedDevices"; /** * DELETE /api/devices/:id/revoke * * User entfernt ein Protected-Device aus der App. * Soft-delete: status=revoked, revokedAt=NOW(). Kein hard-delete (DSGVO-Audit-Trail). * * WICHTIG: Das Profil bleibt auf dem Mac installiert bis der User es manuell * entfernt. Das Backend kann das nicht aus der Ferne erzwingen (Phase 2: MDM). * * Auth: requireUser + ownership (revokeProtectedDevice prüft userId). */ export default defineEventHandler(async (event) => { const user = await requireUser(event); const id = getRouterParam(event, "id"); if (!id) throw createError({ statusCode: 400, data: { error: "ID_REQUIRED" } }); const revoked = await revokeProtectedDevice(id, user.id); if (!revoked) { throw createError({ statusCode: 404, data: { error: "DEVICE_NOT_FOUND_OR_ALREADY_REVOKED" }, }); } return { success: true, manualRemovalRequired: true, data: { error: "MANUAL_REMOVAL_REQUIRED", // Frontend übersetzt diesen Code in die passende UI-Meldung }, }; });