2025-11-14 20:16:24 +01:00

42 lines
1.1 KiB
TypeScript

// app/api/devices/[id]/history/route.ts
import { NextResponse } from 'next/server';
import { prisma } from '@/lib/prisma';
export async function GET(
_req: Request,
{ params }: { params: { id: string } },
) {
// In der URL ist "id" = inventoryNumber
const inventoryNumber = decodeURIComponent(params.id);
try {
const history = await prisma.deviceHistory.findMany({
where: { deviceId: inventoryNumber },
include: {
changedBy: true,
},
orderBy: {
changedAt: 'desc',
},
});
// Auf das Format für DeviceHistorySidebar mappen
const payload = history.map((entry) => ({
id: entry.id,
changeType: entry.changeType,
changedAt: entry.changedAt.toISOString(),
changedBy:
entry.changedBy?.name ??
entry.changedBy?.username ??
entry.changedBy?.email ??
null,
}));
// Auch bei leerer Liste 200 + [] zurückgeben
return NextResponse.json(payload);
} catch (err) {
console.error('[GET /api/devices/[id]/history]', err);
return NextResponse.json({ error: 'INTERNAL_ERROR' }, { status: 500 });
}
}