Remove PerformError from PurgeRoom

This commit is contained in:
Till Faelligen 2023-04-24 10:18:08 +02:00
parent e98b4ef79a
commit c89c2a0119
No known key found for this signature in database
GPG key ID: ACCDC9606D472758
3 changed files with 15 additions and 34 deletions

View file

@ -70,29 +70,19 @@ func AdminEvacuateUser(req *http.Request, rsAPI roomserverAPI.ClientRoomserverAP
} }
} }
func AdminPurgeRoom(req *http.Request, cfg *config.ClientAPI, device *api.Device, rsAPI roomserverAPI.ClientRoomserverAPI) util.JSONResponse { func AdminPurgeRoom(req *http.Request, rsAPI roomserverAPI.ClientRoomserverAPI) util.JSONResponse {
vars, err := httputil.URLDecodeMapValues(mux.Vars(req)) vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
if err != nil { if err != nil {
return util.ErrorResponse(err) return util.ErrorResponse(err)
} }
roomID := vars["roomID"]
res := &roomserverAPI.PerformAdminPurgeRoomResponse{} if err = rsAPI.PerformAdminPurgeRoom(context.Background(), vars["roomID"]); err != nil {
if err := rsAPI.PerformAdminPurgeRoom(
context.Background(),
&roomserverAPI.PerformAdminPurgeRoomRequest{
RoomID: roomID,
},
res,
); err != nil {
return util.ErrorResponse(err) return util.ErrorResponse(err)
} }
if err := res.Error; err != nil {
return err.JSONResponse()
}
return util.JSONResponse{ return util.JSONResponse{
Code: 200, Code: 200,
JSON: res, JSON: struct{}{},
} }
} }

View file

@ -153,7 +153,7 @@ type ClientRoomserverAPI interface {
PerformRoomUpgrade(ctx context.Context, req *PerformRoomUpgradeRequest, resp *PerformRoomUpgradeResponse) error PerformRoomUpgrade(ctx context.Context, req *PerformRoomUpgradeRequest, resp *PerformRoomUpgradeResponse) error
PerformAdminEvacuateRoom(ctx context.Context, roomID string) (affected []string, err error) PerformAdminEvacuateRoom(ctx context.Context, roomID string) (affected []string, err error)
PerformAdminEvacuateUser(ctx context.Context, userID string) (affected []string, err error) PerformAdminEvacuateUser(ctx context.Context, userID string) (affected []string, err error)
PerformAdminPurgeRoom(ctx context.Context, req *PerformAdminPurgeRoomRequest, res *PerformAdminPurgeRoomResponse) error PerformAdminPurgeRoom(ctx context.Context, roomID string) error
PerformAdminDownloadState(ctx context.Context, req *PerformAdminDownloadStateRequest, res *PerformAdminDownloadStateResponse) error PerformAdminDownloadState(ctx context.Context, req *PerformAdminDownloadStateRequest, res *PerformAdminDownloadStateResponse) error
PerformPeek(ctx context.Context, req *PerformPeekRequest, res *PerformPeekResponse) error PerformPeek(ctx context.Context, req *PerformPeekRequest, res *PerformPeekResponse) error
PerformUnpeek(ctx context.Context, req *PerformUnpeekRequest, res *PerformUnpeekResponse) error PerformUnpeek(ctx context.Context, req *PerformUnpeekRequest, res *PerformUnpeekResponse) error

View file

@ -186,35 +186,26 @@ func (r *Admin) PerformAdminEvacuateUser(
func (r *Admin) PerformAdminPurgeRoom( func (r *Admin) PerformAdminPurgeRoom(
ctx context.Context, ctx context.Context,
req *api.PerformAdminPurgeRoomRequest, roomID string,
res *api.PerformAdminPurgeRoomResponse,
) error { ) error {
// Validate we actually got a room ID and nothing else // Validate we actually got a room ID and nothing else
if _, _, err := gomatrixserverlib.SplitID('!', req.RoomID); err != nil { if _, _, err := gomatrixserverlib.SplitID('!', roomID); err != nil {
res.Error = &api.PerformError{ return err
Code: api.PerformErrorBadRequest,
Msg: fmt.Sprintf("Malformed room ID: %s", err),
}
return nil
} }
logrus.WithField("room_id", req.RoomID).Warn("Purging room from roomserver") logrus.WithField("room_id", roomID).Warn("Purging room from roomserver")
if err := r.DB.PurgeRoom(ctx, req.RoomID); err != nil { if err := r.DB.PurgeRoom(ctx, roomID); err != nil {
logrus.WithField("room_id", req.RoomID).WithError(err).Warn("Failed to purge room from roomserver") logrus.WithField("room_id", roomID).WithError(err).Warn("Failed to purge room from roomserver")
res.Error = &api.PerformError{ return err
Code: api.PerformErrorBadRequest,
Msg: err.Error(),
}
return nil
} }
logrus.WithField("room_id", req.RoomID).Warn("Room purged from roomserver") logrus.WithField("room_id", roomID).Warn("Room purged from roomserver")
return r.Inputer.OutputProducer.ProduceRoomEvents(req.RoomID, []api.OutputEvent{ return r.Inputer.OutputProducer.ProduceRoomEvents(roomID, []api.OutputEvent{
{ {
Type: api.OutputTypePurgeRoom, Type: api.OutputTypePurgeRoom,
PurgeRoom: &api.OutputPurgeRoom{ PurgeRoom: &api.OutputPurgeRoom{
RoomID: req.RoomID, RoomID: roomID,
}, },
}, },
}) })