import { NextRequest, NextResponse } from "next/server"; import { exec } from "child_process"; import { auth } from "@/lib/auth"; const ALLOWED_ACTIONS = ["start", "stop", "restart"]; export async function POST( _req: NextRequest, { params }: { params: Promise<{ action: string }> } ) { const session = await auth(); if (!session) { return NextResponse.json({ error: "Unauthorized" }, { status: 403 }); } const { action } = await params; if (!ALLOWED_ACTIONS.includes(action)) { return NextResponse.json({ error: "Invalid action" }, { status: 400 }); } return new Promise((resolve) => { exec(`sudo systemctl ${action} minecraft.service`, (err) => { if (err) { resolve( NextResponse.json({ error: err.message }, { status: 500 }) ); } else { resolve(NextResponse.json({ ok: true, action })); } }); }); }