- 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
26 lines
990 B
TypeScript
26 lines
990 B
TypeScript
"use server";
|
|
|
|
import { revalidatePath } from "next/cache";
|
|
import { requireStaff } from "@/lib/admin/guard";
|
|
import { prisma } from "@/lib/prisma";
|
|
|
|
export async function getBadgeData({ code }: { code: string }) {
|
|
await requireStaff();
|
|
const badge = await prisma.websiteBadges.findUnique({
|
|
where: { badgeKey: code },
|
|
select: { badgeName: true, badgeDescription: true },
|
|
});
|
|
if (!badge) return { ok: false as const, data: null };
|
|
return { ok: true as const, data: { name: badge.badgeName, desc: badge.badgeDescription } };
|
|
}
|
|
|
|
export async function updateBadge({ code, name, desc }: { code: string; name: string; desc: string }) {
|
|
await requireStaff();
|
|
await prisma.websiteBadges.upsert({
|
|
where: { badgeKey: code },
|
|
update: { badgeName: name, badgeDescription: desc, updatedAt: new Date() },
|
|
create: { badgeKey: code, badgeName: name, badgeDescription: desc, createdAt: new Date(), updatedAt: new Date() },
|
|
});
|
|
revalidatePath("/admin/import/badges");
|
|
}
|