diff options
author | Till <2353100+S7evinK@users.noreply.github.com> | 2024-03-22 22:54:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-22 21:54:29 +0000 |
commit | ad0a7d09e89fe18c9e2b08f23f5817a5231c6074 (patch) | |
tree | 01ae155c112ac01dce299724790a9db8d999994d /clientapi/routing/admin.go | |
parent | 81f73c9f8df6dd3078a93b6ca978ecbb9c95df16 (diff) |
Add getting/deleting single event report (#3344)
Based on https://github.com/matrix-org/dendrite/pull/3342
Adds `GET /_synapse/admin/v1/event_reports/{reportID}` and `DELETE
/_synapse/admin/v1/event_reports/{reportID}`
Diffstat (limited to 'clientapi/routing/admin.go')
-rw-r--r-- | clientapi/routing/admin.go | 48 |
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 { |