make reported user nullable
All checks were successful
delpoy / build-and-deploy (push) Successful in 44s
All checks were successful
delpoy / build-and-deploy (push) Successful in 44s
This commit is contained in:
@ -8,15 +8,14 @@ export const POST = (async ({ request, url }) => {
|
||||
if (env.REPORT_SECRET && url.searchParams.get('secret') !== env.REPORT_SECRET)
|
||||
return new Response(null, { status: 401 });
|
||||
|
||||
const data: { reporter: string; reported: string; reason: string } = await request.json();
|
||||
const data: { reporter: string; reported: string | null; reason: string } = await request.json();
|
||||
|
||||
if (data.reporter == null || data.reported == null || data.reason == null)
|
||||
return new Response(null, { status: 400 });
|
||||
if (data.reporter == null || data.reason == null) return new Response(null, { status: 400 });
|
||||
|
||||
const reporter = await User.findOne({ where: { uuid: data.reporter } });
|
||||
const reported = await User.findOne({ where: { uuid: data.reported } });
|
||||
const reported = data.reported ? await User.findOne({ where: { uuid: data.reported } }) : null;
|
||||
|
||||
if (reporter == null || reported == null) return new Response(null, { status: 400 });
|
||||
if (reporter == null) return new Response(null, { status: 400 });
|
||||
|
||||
const report = await Report.create({
|
||||
subject: data.reason,
|
||||
@ -26,7 +25,7 @@ export const POST = (async ({ request, url }) => {
|
||||
url_hash: crypto.randomBytes(18).toString('hex'),
|
||||
completed: false,
|
||||
reporter_id: reporter.id,
|
||||
reported_id: reported.id
|
||||
reported_id: reported?.id || null
|
||||
});
|
||||
|
||||
return new Response(
|
||||
|
@ -22,7 +22,7 @@ export const load: PageServerLoad = async ({ params }) => {
|
||||
name: report.reporter.username
|
||||
},
|
||||
reported: {
|
||||
name: report.reported.username
|
||||
name: report.reported?.username || null
|
||||
}
|
||||
};
|
||||
};
|
||||
|
@ -18,6 +18,7 @@
|
||||
<div class="col-[1] row-[1]" transition:fly={{ x: -200, duration: 300 }}>
|
||||
<ReportDraft
|
||||
reason={data.reason}
|
||||
reporterName={data.reporter.name}
|
||||
reportedName={data.reported.name}
|
||||
on:submit={() => (data.draft = false)}
|
||||
/>
|
||||
|
@ -5,7 +5,8 @@
|
||||
import { page } from '$app/stores';
|
||||
import { createEventDispatcher } from 'svelte';
|
||||
|
||||
export let reportedName: string;
|
||||
export let reporterName: string;
|
||||
export let reportedName: string | null;
|
||||
export let reason: string;
|
||||
|
||||
let body: string;
|
||||
@ -25,7 +26,10 @@
|
||||
</script>
|
||||
|
||||
<div>
|
||||
<h2 class="text-3xl text-center">Report für <code>{reportedName}</code></h2>
|
||||
<h2 class="text-3xl text-center">
|
||||
Report von <span class="underline">{reporterName}</span> gegen
|
||||
<span class="underline">{reportedName || 'unbekannt'}</span>
|
||||
</h2>
|
||||
<form on:submit|preventDefault={() => submitModal.show()}>
|
||||
<div class="space-y-4 my-4">
|
||||
<div>
|
||||
|
Reference in New Issue
Block a user