71 lines
1.9 KiB
TypeScript
Raw Normal View History

2025-04-12 20:18:40 +02:00
import { NextResponse, NextRequest } from "next/server";
2025-04-13 21:10:17 +02:00
import { prisma } from "@/lib/prisma";
2025-04-12 20:18:40 +02:00
interface EditRequest {
host: boolean;
hostServer: number;
2025-04-12 20:18:40 +02:00
id: number;
name: string;
icon: string;
2025-04-12 20:18:40 +02:00
os: string;
ip: string;
url: string;
2025-04-12 21:00:18 +02:00
cpu: string;
gpu: string;
ram: string;
disk: string;
monitoring: boolean;
monitoringURL: string;
m_cpu: boolean;
m_gpu: boolean;
m_ram: boolean;
m_disk: boolean;
m_temp: boolean;
2025-04-12 20:18:40 +02:00
}
export async function PUT(request: NextRequest) {
try {
const body: EditRequest = await request.json();
const { host, hostServer, id, name, icon, os, ip, url, cpu, gpu, ram, disk, monitoring, monitoringURL, m_cpu, m_gpu, m_ram, m_disk, m_temp } = body;
2025-04-12 20:18:40 +02:00
const existingServer = await prisma.server.findUnique({ where: { id } });
if (!existingServer) {
return NextResponse.json({ error: "Server not found" }, { status: 404 });
}
let newHostServer = hostServer;
if (hostServer === null) {
newHostServer = 0;
} else {
newHostServer = hostServer;
}
2025-04-12 20:18:40 +02:00
const updatedServer = await prisma.server.update({
where: { id },
2025-04-12 21:00:18 +02:00
data: {
2025-04-18 14:35:36 +02:00
host,
hostServer: newHostServer,
2025-04-12 21:00:18 +02:00
name,
icon,
2025-04-12 21:00:18 +02:00
os,
ip,
url,
cpu,
gpu,
ram,
disk,
monitoring,
monitoringURL,
m_cpu,
m_gpu,
m_ram,
m_disk,
m_temp
2025-04-12 21:00:18 +02:00
}
2025-04-12 20:18:40 +02:00
});
return NextResponse.json({ message: "Server updated", server: updatedServer });
} catch (error: any) {
return NextResponse.json({ error: error.message }, { status: 500 });
}
}