add report page

This commit is contained in:
2023-09-28 01:12:06 +02:00
parent c57e514613
commit 37c230575d
15 changed files with 280 additions and 9 deletions

View File

@ -0,0 +1,32 @@
import type { RequestHandler } from '@sveltejs/kit';
import { Report, User } from '$lib/server/database';
import * as crypto from 'crypto';
export const POST = (async ({ request, url }) => {
const data: { reporter: string; reported: string; reason: string } = await request.json();
if (data.reporter == undefined || data.reported == undefined || data.reason == undefined)
return new Response(null, { status: 400 });
const reporter = await User.findOne({ where: { uuid: data.reporter } });
const reported = await User.findOne({ where: { uuid: data.reported } });
if (reporter == null || reported == null) return new Response(null, { status: 400 });
const report = await Report.create({
subject: data.reason,
body: null,
draft: true,
url_id: crypto.randomBytes(18).toString('hex'),
completed: false,
reporter_user_id: reporter.id,
reported_user_id: reported.id
});
return new Response(
JSON.stringify({ url: `${url.toString().replace(/\/$/, '')}/${report.url_id}` }),
{
status: 201
}
);
}) satisfies RequestHandler;