started implementing report repository

This commit is contained in:
Lars Neuhaus 2024-12-05 18:58:55 +01:00
parent 8811328571
commit 0276763a8d

View File

@ -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);
}
}