import { getBanList, setBanList } from "../../../roblox-open-cloud.js"; import { insertLogs } from "../../../gcloud.js"; import { jsonError } from "../../../common.js"; export async function onRequestPost(context: RequestContext) { const actionMap = context.data.body; const newActions: { [k: string]: { BanType: number } } = {}; const logMap: { [k: string]: number } = {}; for (const [user, action] of Object.entries(actionMap)) { if ( isNaN(parseInt(user)) || typeof action !== "number" || action < 0 || action > 2 ) return jsonError("Invalid action map", 400); if (action === 0) continue; Object.defineProperty(newActions, user, { value: { BanType: action, }, }); Object.defineProperty(logMap, user, { value: action, }); } await insertLogs(logMap, context.params.id as string, context); const banList = (await getBanList(context)) as { [k: string]: { BanType: number }; }; Object.assign(banList, newActions); await setBanList(context, banList); return new Response(null, { status: 204, }); }