File size: 703 Bytes
416bdd1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { NextResponse } from "next/server";
import { adminDenied, checkAdmin } from "@/lib/admin-auth";
import { toolStatuses } from "@/lib/tool-types";
import type { ToolStatus } from "@/lib/tool-types";
import { listToolsByStatus } from "@/lib/tools";

export async function GET(request: Request) {
  const auth = checkAdmin(request);
  if (auth !== "ok") return adminDenied(auth);

  const status = new URL(request.url).searchParams.get("status") ?? "pending";
  if (!toolStatuses.includes(status as ToolStatus)) {
    return NextResponse.json({ error: "Unknown status." }, { status: 400 });
  }
  const tools = await listToolsByStatus(status as ToolStatus);
  return NextResponse.json({ tools });
}