From 0276763a8dfc1c0867b5a578f6ca542045c6695f Mon Sep 17 00:00:00 2001
From: lars <larslukasneuhaus@gmx.de>
Date: Thu, 5 Dec 2024 18:58:55 +0100
Subject: [PATCH] started implementing report repository

---
 .../client/repositories/ReportRepository.java | 24 +++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java b/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java
index 4f50acf..7da116d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java
+++ b/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java
@@ -2,8 +2,12 @@ package eu.mhsl.craftattack.spawn.api.client.repositories;
 
 import eu.mhsl.craftattack.spawn.api.client.HttpRepository;
 import eu.mhsl.craftattack.spawn.api.client.ReqResp;
+import eu.mhsl.craftattack.spawn.appliances.report.Report;
 import eu.mhsl.craftattack.spawn.util.api.ApiUtil;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
+import java.util.List;
 import java.util.UUID;
 
 public class ReportRepository extends HttpRepository {
@@ -11,10 +15,22 @@ public class ReportRepository extends HttpRepository {
         super(ApiUtil.getBaseUri(), ApiUtil::withAuthorizationSecret);
     }
 
-    public record SendReportResponse(UUID user) {}
-    public record ReportInput(UUID user) {}
+    public record ReportData(@NotNull UUID reporter, @Nullable UUID reported, String reason) {
+    }
 
-    public ReqResp<SendReportResponse> sendReport(ReportInput input) {
-        return this.post("reports", (builder) -> builder.addParameter("token", "asd"), input, SendReportResponse.class);
+    public record ReportDataResponse(@NotNull String url) {
+    }
+
+    public record ReportsResponse(List<ReportInfo> from_self, Object to_self) {
+    }
+
+    public record ReportInfo(Reporter reported, @NotNull String subject, boolean draft, @NotNull String status, @NotNull String url) {
+    }
+
+    public record Reporter(@NotNull String username, @NotNull String uuid) {
+    }
+
+    public ReqResp<ReportsResponse> queryReports(UUID player) {
+        return this.get("reports", (builder) -> builder.addParameter("token", "asd"), input, SendReportResponse.class);
     }
 }