diff --git a/backend/routes/mod/routes.go b/backend/routes/mod/routes.go
index ca3db57..8b64139 100644
--- a/backend/routes/mod/routes.go
+++ b/backend/routes/mod/routes.go
@@ -20,6 +20,7 @@ func Mount(srv *server.Server, r chi.Router) {
r.Get("/reports/by-user/{id}", server.WrapHandler(s.getReportsByUser))
r.Get("/reports/by-reporter/{id}", server.WrapHandler(s.getReportsByReporter))
+ r.Get("/reports/{id}", nil)
r.Patch("/reports/{id}", nil)
})
diff --git a/frontend/src/lib/api/entities.ts b/frontend/src/lib/api/entities.ts
index 2117de8..b285187 100644
--- a/frontend/src/lib/api/entities.ts
+++ b/frontend/src/lib/api/entities.ts
@@ -81,6 +81,19 @@ export interface Invite {
used: boolean;
}
+export interface Report {
+ id: string;
+ user_id: string;
+ member_id: string | null;
+ reason: string;
+ reporter_id: string;
+
+ created_at: string;
+ resolved_at: string | null;
+ admin_id: string | null;
+ admin_comment: string | null;
+}
+
export interface APIError {
code: ErrorCode;
message?: string;
diff --git a/frontend/src/routes/reports/+layout.svelte b/frontend/src/routes/reports/+layout.svelte
new file mode 100644
index 0000000..4fa864c
--- /dev/null
+++ b/frontend/src/routes/reports/+layout.svelte
@@ -0,0 +1 @@
+
diff --git a/frontend/src/routes/reports/+layout.ts b/frontend/src/routes/reports/+layout.ts
new file mode 100644
index 0000000..a3d1578
--- /dev/null
+++ b/frontend/src/routes/reports/+layout.ts
@@ -0,0 +1 @@
+export const ssr = false;
diff --git a/frontend/src/routes/reports/+page.svelte b/frontend/src/routes/reports/+page.svelte
new file mode 100644
index 0000000..7f17dcf
--- /dev/null
+++ b/frontend/src/routes/reports/+page.svelte
@@ -0,0 +1,5 @@
+
diff --git a/frontend/src/routes/reports/+page.ts b/frontend/src/routes/reports/+page.ts
new file mode 100644
index 0000000..260f0d4
--- /dev/null
+++ b/frontend/src/routes/reports/+page.ts
@@ -0,0 +1,15 @@
+import type { Report } from "$lib/api/entities";
+import { apiFetchClient } from "$lib/api/fetch";
+
+export const load = async () => {
+ const reports = await apiFetchClient("/admin/reports");
+ return { page: 0, isClosed: false, userId: null, reporterId: null, reports } as PageLoadData;
+};
+
+interface PageLoadData {
+ page: number;
+ isClosed: boolean;
+ userId: string | null;
+ reporterId: string | null;
+ reports: Report[];
+}