- Add 11 missing server action files: badges, bulk-users, catalog, catalog-bc, catalog-items, import-badges, import-furni, multi-account-detect, permissions, rooms, soundtracks - Add missing admin navigation links: tickets, sounds, translations, import, radio sub-pages - Add translation keys for all new navigation items
29 lines
902 B
TypeScript
29 lines
902 B
TypeScript
import { apiJson } from "@/lib/api";
|
|
import { prisma } from "@/lib/prisma";
|
|
|
|
// Minimal radio_* settings an external page needs to embed the player: stream
|
|
// URL, display name, whether the radio is enabled, and autoplay. Returned as a
|
|
// flat { key: value } map. None of these keys are secrets.
|
|
export const dynamic = "force-dynamic";
|
|
|
|
const EMBED_KEYS = ["radio_enabled", "radio_name", "radio_stream_url", "radio_auto_play"];
|
|
|
|
export async function GET(_req: Request) {
|
|
try {
|
|
const rows = await prisma.websiteSetting.findMany({
|
|
where: { key: { in: EMBED_KEYS } },
|
|
select: { key: true, value: true },
|
|
});
|
|
|
|
const config: Record<string, string> = {};
|
|
for (const row of rows) {
|
|
config[row.key] = row.value;
|
|
}
|
|
|
|
return apiJson(config);
|
|
} catch {
|
|
// DB unavailable — serve an empty config rather than a 500.
|
|
return apiJson({}, { status: 200 });
|
|
}
|
|
}
|