40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
// app/api/devices/route.ts
|
|
import { NextResponse } from 'next/server';
|
|
import { prisma } from '@/lib/prisma';
|
|
|
|
export async function GET() {
|
|
try {
|
|
const devices = await prisma.device.findMany({
|
|
include: {
|
|
group: true,
|
|
location: true,
|
|
},
|
|
orderBy: {
|
|
updatedAt: 'desc',
|
|
},
|
|
});
|
|
|
|
const rows = devices.map((device) => ({
|
|
inventoryNumber: device.inventoryNumber,
|
|
name: device.name,
|
|
manufacturer: device.manufacturer,
|
|
model: device.model,
|
|
serialNumber: device.serialNumber,
|
|
productNumber: device.productNumber,
|
|
comment: device.comment,
|
|
ipv4Address: device.ipv4Address,
|
|
ipv6Address: device.ipv6Address,
|
|
macAddress: device.macAddress,
|
|
username: device.username,
|
|
group: device.group?.name ?? null,
|
|
location: device.location?.name ?? null,
|
|
updatedAt: device.updatedAt.toISOString(),
|
|
}));
|
|
|
|
return NextResponse.json(rows);
|
|
} catch (err) {
|
|
console.error('[GET /api/devices]', err);
|
|
return NextResponse.json({ error: 'INTERNAL_ERROR' }, { status: 500 });
|
|
}
|
|
}
|