Delete all data if all users are ignored

This commit is contained in:
regalijan 2023-10-19 16:50:55 -04:00
parent e4158645f5
commit 31bbdd8c1a
Signed by: regalijan
GPG Key ID: 5D4196DA269EF520

View File

@ -1,12 +1,46 @@
import { getBanList, setBanList } from "../../../roblox-open-cloud.js"; import { getBanList, setBanList } from "../../../roblox-open-cloud.js";
import { insertLogs } from "../../../gcloud.js"; import { GetAccessToken, insertLogs } from "../../../gcloud.js";
import { jsonError } from "../../../common.js"; import { jsonError } from "../../../common.js";
export async function onRequestPost(context: RequestContext) { export async function onRequestPost(context: RequestContext) {
const reportId = context.params.id as string;
const reportData: ReportCardProps | null = await context.env.DATA.get(
`report_${reportId}`,
{ type: "json" },
);
if (!reportData) return jsonError("Report does not exist", 404);
const actionMap = context.data.body; const actionMap = context.data.body;
const newActions: { [k: string]: { BanType: number } } = {}; const newActions: { [k: string]: { BanType: number } } = {};
const logMap: { [k: string]: number } = {}; const logMap: { [k: string]: number } = {};
if (!Object.values(actionMap).find((action) => action !== 0)) {
await context.env.DATA.delete(`report_${reportId}`);
await context.env.D1.prepare("DELETE FROM reports WHERE id = ?;")
.bind(reportId)
.run();
const gcloudAccessToken = await GetAccessToken(context.env);
for (const attachment of reportData.attachments) {
await fetch(
`https://storage.googleapis.com/storage/v1/b/portal-carcrushers-cc/o/${encodeURIComponent(
attachment,
)}`,
{
headers: {
authorization: `Bearer ${gcloudAccessToken}`,
},
method: "DELETE",
},
);
}
return new Response(null, {
status: 204,
});
}
for (const [user, action] of Object.entries(actionMap)) { for (const [user, action] of Object.entries(actionMap)) {
if ( if (
isNaN(parseInt(user)) || isNaN(parseInt(user)) ||