mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-12 17:33:09 -06:00
Refactor GetEvents
This commit is contained in:
parent
241b1b5ace
commit
eb896dd6b5
|
|
@ -35,6 +35,22 @@ func GetEvent(
|
||||||
_ gomatrixserverlib.KeyRing,
|
_ gomatrixserverlib.KeyRing,
|
||||||
eventID string,
|
eventID string,
|
||||||
) util.JSONResponse {
|
) util.JSONResponse {
|
||||||
|
event, err := getEvent(ctx, request, query, eventID)
|
||||||
|
if err != nil {
|
||||||
|
return *err
|
||||||
|
}
|
||||||
|
|
||||||
|
return util.JSONResponse{Code: http.StatusOK, JSON: event}
|
||||||
|
}
|
||||||
|
|
||||||
|
// getEvent returns the requested event.
|
||||||
|
// Or returns an error response which can be sent to the client.
|
||||||
|
func getEvent(
|
||||||
|
ctx context.Context,
|
||||||
|
request *gomatrixserverlib.FederationRequest,
|
||||||
|
query api.RoomserverQueryAPI,
|
||||||
|
eventID string,
|
||||||
|
) (*gomatrixserverlib.Event, *util.JSONResponse) {
|
||||||
var authResponse api.QueryServerAllowedToSeeEventResponse
|
var authResponse api.QueryServerAllowedToSeeEventResponse
|
||||||
err := query.QueryServerAllowedToSeeEvent(
|
err := query.QueryServerAllowedToSeeEvent(
|
||||||
ctx,
|
ctx,
|
||||||
|
|
@ -45,11 +61,13 @@ func GetEvent(
|
||||||
&authResponse,
|
&authResponse,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return util.ErrorResponse(err)
|
resErr := util.ErrorResponse(err)
|
||||||
|
return nil, &resErr
|
||||||
}
|
}
|
||||||
|
|
||||||
if !authResponse.AllowedToSeeEvent {
|
if !authResponse.AllowedToSeeEvent {
|
||||||
return util.MessageResponse(http.StatusForbidden, "server not allowed to see event")
|
resErr := util.MessageResponse(http.StatusForbidden, "server not allowed to see event")
|
||||||
|
return nil, &resErr
|
||||||
}
|
}
|
||||||
|
|
||||||
var eventsResponse api.QueryEventsByIDResponse
|
var eventsResponse api.QueryEventsByIDResponse
|
||||||
|
|
@ -59,12 +77,13 @@ func GetEvent(
|
||||||
&eventsResponse,
|
&eventsResponse,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return util.ErrorResponse(err)
|
resErr := util.ErrorResponse(err)
|
||||||
|
return nil, &resErr
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(eventsResponse.Events) == 0 {
|
if len(eventsResponse.Events) == 0 {
|
||||||
return util.JSONResponse{Code: http.StatusNotFound, JSON: nil}
|
return nil, &util.JSONResponse{Code: http.StatusNotFound, JSON: nil}
|
||||||
}
|
}
|
||||||
|
|
||||||
return util.JSONResponse{Code: http.StatusOK, JSON: &eventsResponse.Events[0]}
|
return &eventsResponse.Events[0], nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue