aboutsummaryrefslogtreecommitdiff
path: root/clientapi/routing/admin.go
diff options
context:
space:
mode:
Diffstat (limited to 'clientapi/routing/admin.go')
-rw-r--r--clientapi/routing/admin.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/clientapi/routing/admin.go b/clientapi/routing/admin.go
index e91e098a..68e62b08 100644
--- a/clientapi/routing/admin.go
+++ b/clientapi/routing/admin.go
@@ -530,6 +530,54 @@ func GetEventReports(
}
}
+func GetEventReport(req *http.Request, rsAPI roomserverAPI.ClientRoomserverAPI, reportID string) util.JSONResponse {
+ parsedReportID, err := strconv.ParseUint(reportID, 10, 64)
+ if err != nil {
+ return util.JSONResponse{
+ Code: http.StatusBadRequest,
+ // Given this is an admin endpoint, let them know what didn't work.
+ JSON: spec.InvalidParam(err.Error()),
+ }
+ }
+
+ report, err := rsAPI.QueryAdminEventReport(req.Context(), parsedReportID)
+ if err != nil {
+ return util.JSONResponse{
+ Code: http.StatusInternalServerError,
+ JSON: spec.Unknown(err.Error()),
+ }
+ }
+
+ return util.JSONResponse{
+ Code: http.StatusOK,
+ JSON: report,
+ }
+}
+
+func DeleteEventReport(req *http.Request, rsAPI roomserverAPI.ClientRoomserverAPI, reportID string) util.JSONResponse {
+ parsedReportID, err := strconv.ParseUint(reportID, 10, 64)
+ if err != nil {
+ return util.JSONResponse{
+ Code: http.StatusBadRequest,
+ // Given this is an admin endpoint, let them know what didn't work.
+ JSON: spec.InvalidParam(err.Error()),
+ }
+ }
+
+ err = rsAPI.PerformAdminDeleteEventReport(req.Context(), parsedReportID)
+ if err != nil {
+ return util.JSONResponse{
+ Code: http.StatusInternalServerError,
+ JSON: spec.Unknown(err.Error()),
+ }
+ }
+
+ return util.JSONResponse{
+ Code: http.StatusOK,
+ JSON: struct{}{},
+ }
+}
+
func parseUint64OrDefault(input string, defaultValue uint64) uint64 {
v, err := strconv.ParseUint(input, 10, 64)
if err != nil {