33 lines
851 B
TypeScript
33 lines
851 B
TypeScript
import { withAdmin } from "@/lib/api-handler";
|
|
import { apiOk } from "@/lib/api-response";
|
|
import { PERMS } from "@/lib/permissions";
|
|
import { lookupHabboIt } from "@/lib/services/habbo-furnidata-cache";
|
|
|
|
export const GET = withAdmin(
|
|
{ permission: PERMS.CATALOG_VIEW },
|
|
async (request) => {
|
|
const raw = request.nextUrl.searchParams.get("classnames") || "";
|
|
const classnames = raw
|
|
.split(",")
|
|
.map((s) => s.trim())
|
|
.filter(Boolean)
|
|
.slice(0, 100);
|
|
|
|
const suggestions: Record<string, { name: string; description: string }> =
|
|
{};
|
|
|
|
await Promise.all(
|
|
classnames.map(async (classname) => {
|
|
const entry = await lookupHabboIt(classname);
|
|
if (!entry) return;
|
|
suggestions[classname] = {
|
|
name: entry.name ?? "",
|
|
description: entry.description ?? "",
|
|
};
|
|
}),
|
|
);
|
|
|
|
return apiOk({ suggestions });
|
|
},
|
|
);
|