● Zion Boggan
repos/Darwin/face/src/app/api/term/kill/route.ts
zionboggan.com ↗
25 lines · typescript
History for this file →
1
import { NextResponse } from "next/server";
2
 
3
export const dynamic = "force-dynamic";
4
export const runtime = "nodejs";
5
 
6
export async function POST(req: Request) {
7
  const token = process.env.DARWIN_TERM_TOKEN ?? "";
8
  const host = process.env.DARWIN_TERM_HOST ?? "REDACTED-IP:9894";
9
  if (!token) return NextResponse.json({ ok: false, error: "no token" }, { status: 503 });
10
 
11
  const { searchParams } = new URL(req.url);
12
  const target = searchParams.get("target") ?? "";
13
  const session = searchParams.get("session") ?? "";
14
  const p = new URLSearchParams({ target, session, token });
15
  try {
16
    const res = await fetch(`http://${host}/kill?${p.toString()}`, { method: "POST" });
17
    const body = await res.text();
18
    return new NextResponse(body, {
19
      status: res.status,
20
      headers: { "content-type": "application/json" },
21
    });
22
  } catch (e) {
23
    return NextResponse.json({ ok: false, error: String(e) }, { status: 502 });
24
  }
25
}