diff --git a/functions/api/reports/[id]/action.ts b/functions/api/reports/[id]/action.ts index 8d0df0b..66adbca 100644 --- a/functions/api/reports/[id]/action.ts +++ b/functions/api/reports/[id]/action.ts @@ -1,5 +1,5 @@ import { getBanList, setBanList } from "../../../roblox-open-cloud.js"; -import { GetAccessToken, insertLogs } from "../../../gcloud.js"; +import { insertLogs } from "../../../gcloud.js"; import { jsonError } from "../../../common.js"; import sendEmail from "../../../email.js"; @@ -17,43 +17,6 @@ export async function onRequestPost(context: RequestContext) { const logMap: { [k: string]: number } = {}; const { user } = reportData as ReportCardProps & { user?: { email: string } }; - if (user?.email) - await sendEmail( - user.email, - context.env.MAILGUN_API_KEY, - "Report Processed", - "report_processed", - { - username: reportData.user?.username as string, - }, - ); - - 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)) { if ( isNaN(parseInt(user)) || @@ -69,14 +32,16 @@ export async function onRequestPost(context: RequestContext) { logMap[user] = action; } - await insertLogs(logMap, context.params.id as string, context); + if (Object.values(logMap).length) { + await insertLogs(logMap, context.params.id as string, context); - const banList = (await getBanList(context)) as { - [k: string]: { BanType: number }; - }; + const banList = (await getBanList(context)) as { + [k: string]: { BanType: number }; + }; - Object.assign(banList, newActions); - await setBanList(context, banList); + Object.assign(banList, newActions); + await setBanList(context, banList); + } reportData.open = false; await context.env.DATA.put(`report_${reportId}`, JSON.stringify(reportData)); @@ -84,6 +49,17 @@ export async function onRequestPost(context: RequestContext) { .bind(reportId) .run(); + if (user?.email) + await sendEmail( + user.email, + context.env.MAILGUN_API_KEY, + "Report Processed", + "report_processed", + { + username: reportData.user?.username as string, + }, + ); + return new Response(null, { status: 204, });