add report page
This commit is contained in:
32
src/routes/report/+server.ts
Normal file
32
src/routes/report/+server.ts
Normal 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;
|
Reference in New Issue
Block a user