Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Don't delete unactioned reports anymore
  • Loading branch information
regalijan committed Oct 19, 2023
1 parent 1a35cca commit 733d748
Showing 1 changed file with 20 additions and 44 deletions.
64 changes: 20 additions & 44 deletions 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";

Expand All @@ -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)) ||
Expand All @@ -69,21 +32,34 @@ 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));
await context.env.D1.prepare("UPDATE reports SET open = 0 WHERE id = ?;")
.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,
});
Expand Down

0 comments on commit 733d748

Please sign in to comment.