aboutsummaryrefslogtreecommitdiff
path: root/syncapi
diff options
context:
space:
mode:
authordevonh <devon.dmytro@gmail.com>2023-05-09 22:46:49 +0000
committerGitHub <noreply@github.com>2023-05-09 22:46:49 +0000
commit0489d16f95a3d9f1f5bc532e2060bd2482d7b156 (patch)
treea0573b5a0c21ca563e97abae81e36d66ad14e7d8 /syncapi
parenta49c9f01e227aeb12aa2f27d5bf1915453c23a3b (diff)
Move json errors over to gmsl (#3080)
Diffstat (limited to 'syncapi')
-rw-r--r--syncapi/internal/keychange_test.go15
-rw-r--r--syncapi/routing/context.go27
-rw-r--r--syncapi/routing/filter.go20
-rw-r--r--syncapi/routing/getevent.go12
-rw-r--r--syncapi/routing/memberships.go18
-rw-r--r--syncapi/routing/messages.go27
-rw-r--r--syncapi/routing/relations.go6
-rw-r--r--syncapi/routing/routing.go5
-rw-r--r--syncapi/routing/search.go21
-rw-r--r--syncapi/sync/requestpool.go17
10 files changed, 79 insertions, 89 deletions
diff --git a/syncapi/internal/keychange_test.go b/syncapi/internal/keychange_test.go
index 11954904..23c2ecba 100644
--- a/syncapi/internal/keychange_test.go
+++ b/syncapi/internal/keychange_test.go
@@ -34,20 +34,16 @@ func (k *mockKeyAPI) PerformUploadKeys(ctx context.Context, req *userapi.Perform
func (k *mockKeyAPI) SetUserAPI(i userapi.UserInternalAPI) {}
// PerformClaimKeys claims one-time keys for use in pre-key messages
-func (k *mockKeyAPI) PerformClaimKeys(ctx context.Context, req *userapi.PerformClaimKeysRequest, res *userapi.PerformClaimKeysResponse) error {
- return nil
+func (k *mockKeyAPI) PerformClaimKeys(ctx context.Context, req *userapi.PerformClaimKeysRequest, res *userapi.PerformClaimKeysResponse) {
}
func (k *mockKeyAPI) PerformDeleteKeys(ctx context.Context, req *userapi.PerformDeleteKeysRequest, res *userapi.PerformDeleteKeysResponse) error {
return nil
}
-func (k *mockKeyAPI) PerformUploadDeviceKeys(ctx context.Context, req *userapi.PerformUploadDeviceKeysRequest, res *userapi.PerformUploadDeviceKeysResponse) error {
- return nil
+func (k *mockKeyAPI) PerformUploadDeviceKeys(ctx context.Context, req *userapi.PerformUploadDeviceKeysRequest, res *userapi.PerformUploadDeviceKeysResponse) {
}
-func (k *mockKeyAPI) PerformUploadDeviceSignatures(ctx context.Context, req *userapi.PerformUploadDeviceSignaturesRequest, res *userapi.PerformUploadDeviceSignaturesResponse) error {
- return nil
+func (k *mockKeyAPI) PerformUploadDeviceSignatures(ctx context.Context, req *userapi.PerformUploadDeviceSignaturesRequest, res *userapi.PerformUploadDeviceSignaturesResponse) {
}
-func (k *mockKeyAPI) QueryKeys(ctx context.Context, req *userapi.QueryKeysRequest, res *userapi.QueryKeysResponse) error {
- return nil
+func (k *mockKeyAPI) QueryKeys(ctx context.Context, req *userapi.QueryKeysRequest, res *userapi.QueryKeysResponse) {
}
func (k *mockKeyAPI) QueryKeyChanges(ctx context.Context, req *userapi.QueryKeyChangesRequest, res *userapi.QueryKeyChangesResponse) error {
return nil
@@ -60,8 +56,7 @@ func (k *mockKeyAPI) QueryDeviceMessages(ctx context.Context, req *userapi.Query
return nil
}
-func (k *mockKeyAPI) QuerySignatures(ctx context.Context, req *userapi.QuerySignaturesRequest, res *userapi.QuerySignaturesResponse) error {
- return nil
+func (k *mockKeyAPI) QuerySignatures(ctx context.Context, req *userapi.QuerySignaturesRequest, res *userapi.QuerySignaturesResponse) {
}
type mockRoomserverAPI struct {
diff --git a/syncapi/routing/context.go b/syncapi/routing/context.go
index b85ab7f2..8ff656e7 100644
--- a/syncapi/routing/context.go
+++ b/syncapi/routing/context.go
@@ -23,7 +23,6 @@ import (
"strconv"
"time"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/sqlutil"
roomserver "github.com/matrix-org/dendrite/roomserver/api"
@@ -57,7 +56,7 @@ func Context(
) util.JSONResponse {
snapshot, err := syncDB.NewDatabaseSnapshot(req.Context())
if err != nil {
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
var succeeded bool
defer sqlutil.EndTransactionWithCheck(snapshot, &succeeded, &err)
@@ -75,7 +74,7 @@ func Context(
}
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.InvalidParam(errMsg),
+ JSON: spec.InvalidParam(errMsg),
Headers: nil,
}
}
@@ -88,12 +87,12 @@ func Context(
membershipReq := roomserver.QueryMembershipForUserRequest{UserID: device.UserID, RoomID: roomID}
if err = rsAPI.QueryMembershipForUser(ctx, &membershipReq, &membershipRes); err != nil {
logrus.WithError(err).Error("unable to query membership")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
if !membershipRes.RoomExists {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Forbidden("room does not exist"),
+ JSON: spec.Forbidden("room does not exist"),
}
}
@@ -114,11 +113,11 @@ func Context(
if err == sql.ErrNoRows {
return util.JSONResponse{
Code: http.StatusNotFound,
- JSON: jsonerror.NotFound(fmt.Sprintf("Event %s not found", eventID)),
+ JSON: spec.NotFound(fmt.Sprintf("Event %s not found", eventID)),
}
}
logrus.WithError(err).WithField("eventID", eventID).Error("unable to find requested event")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
// verify the user is allowed to see the context for this room/event
@@ -126,7 +125,7 @@ func Context(
filteredEvents, err := internal.ApplyHistoryVisibilityFilter(ctx, snapshot, rsAPI, []*rstypes.HeaderedEvent{&requestedEvent}, nil, device.UserID, "context")
if err != nil {
logrus.WithError(err).Error("unable to apply history visibility filter")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
logrus.WithFields(logrus.Fields{
"duration": time.Since(startTime),
@@ -135,27 +134,27 @@ func Context(
if len(filteredEvents) == 0 {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Forbidden("User is not allowed to query context"),
+ JSON: spec.Forbidden("User is not allowed to query context"),
}
}
eventsBefore, err := snapshot.SelectContextBeforeEvent(ctx, id, roomID, filter)
if err != nil && err != sql.ErrNoRows {
logrus.WithError(err).Error("unable to fetch before events")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
_, eventsAfter, err := snapshot.SelectContextAfterEvent(ctx, id, roomID, filter)
if err != nil && err != sql.ErrNoRows {
logrus.WithError(err).Error("unable to fetch after events")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
startTime = time.Now()
eventsBeforeFiltered, eventsAfterFiltered, err := applyHistoryVisibilityOnContextEvents(ctx, snapshot, rsAPI, eventsBefore, eventsAfter, device.UserID)
if err != nil {
logrus.WithError(err).Error("unable to apply history visibility filter")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
logrus.WithFields(logrus.Fields{
@@ -167,7 +166,7 @@ func Context(
state, err := snapshot.CurrentState(ctx, roomID, &stateFilter, nil)
if err != nil {
logrus.WithError(err).Error("unable to fetch current room state")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
eventsBeforeClient := synctypes.ToClientEvents(gomatrixserverlib.ToPDUs(eventsBeforeFiltered), synctypes.FormatAll)
@@ -181,7 +180,7 @@ func Context(
newState, err = applyLazyLoadMembers(ctx, device, snapshot, roomID, evs, lazyLoadCache)
if err != nil {
logrus.WithError(err).Error("unable to load membership events")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
}
diff --git a/syncapi/routing/filter.go b/syncapi/routing/filter.go
index 266ad4ad..5152e1f8 100644
--- a/syncapi/routing/filter.go
+++ b/syncapi/routing/filter.go
@@ -23,11 +23,11 @@ import (
"github.com/matrix-org/util"
"github.com/tidwall/gjson"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/sync"
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// GetFilter implements GET /_matrix/client/r0/user/{userId}/filter/{filterId}
@@ -37,13 +37,13 @@ func GetFilter(
if userID != device.UserID {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Forbidden("Cannot get filters for other users"),
+ JSON: spec.Forbidden("Cannot get filters for other users"),
}
}
localpart, _, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
filter := synctypes.DefaultFilter()
@@ -53,7 +53,7 @@ func GetFilter(
// even though it is not correct.
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.NotFound("No such filter"),
+ JSON: spec.NotFound("No such filter"),
}
}
@@ -76,14 +76,14 @@ func PutFilter(
if userID != device.UserID {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Forbidden("Cannot create filters for other users"),
+ JSON: spec.Forbidden("Cannot create filters for other users"),
}
}
localpart, _, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
var filter synctypes.Filter
@@ -93,14 +93,14 @@ func PutFilter(
if err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.BadJSON("The request body could not be read. " + err.Error()),
+ JSON: spec.BadJSON("The request body could not be read. " + err.Error()),
}
}
if err = json.Unmarshal(body, &filter); err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.BadJSON("The request body could not be decoded into valid JSON. " + err.Error()),
+ JSON: spec.BadJSON("The request body could not be decoded into valid JSON. " + err.Error()),
}
}
// the filter `limit` is `int` which defaults to 0 if not set which is not what we want. We want to use the default
@@ -115,14 +115,14 @@ func PutFilter(
if err = filter.Validate(); err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.BadJSON("Invalid filter: " + err.Error()),
+ JSON: spec.BadJSON("Invalid filter: " + err.Error()),
}
}
filterID, err := syncDB.PutFilter(req.Context(), localpart, &filter)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("syncDB.PutFilter failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
return util.JSONResponse{
diff --git a/syncapi/routing/getevent.go b/syncapi/routing/getevent.go
index 7775598e..e3d77cc3 100644
--- a/syncapi/routing/getevent.go
+++ b/syncapi/routing/getevent.go
@@ -20,13 +20,13 @@ import (
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/syncapi/internal"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/synctypes"
userapi "github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// GetEvent implements
@@ -51,13 +51,13 @@ func GetEvent(
})
if err != nil {
logger.WithError(err).Error("GetEvent: syncDB.NewDatabaseTransaction failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
events, err := db.Events(ctx, []string{eventID})
if err != nil {
logger.WithError(err).Error("GetEvent: syncDB.Events failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
// The requested event does not exist in our database
@@ -65,7 +65,7 @@ func GetEvent(
logger.Debugf("GetEvent: requested event doesn't exist locally")
return util.JSONResponse{
Code: http.StatusNotFound,
- JSON: jsonerror.NotFound("The event was not found or you do not have permission to read this event"),
+ JSON: spec.NotFound("The event was not found or you do not have permission to read this event"),
}
}
@@ -81,7 +81,7 @@ func GetEvent(
logger.WithError(err).Error("GetEvent: internal.ApplyHistoryVisibilityFilter failed")
return util.JSONResponse{
Code: http.StatusInternalServerError,
- JSON: jsonerror.InternalServerError(),
+ JSON: spec.InternalServerError(),
}
}
@@ -91,7 +91,7 @@ func GetEvent(
logger.WithField("event_count", len(events)).Debug("GetEvent: can't return the requested event")
return util.JSONResponse{
Code: http.StatusNotFound,
- JSON: jsonerror.NotFound("The event was not found or you do not have permission to read this event"),
+ JSON: spec.NotFound("The event was not found or you do not have permission to read this event"),
}
}
diff --git a/syncapi/routing/memberships.go b/syncapi/routing/memberships.go
index a23f1525..5a66009c 100644
--- a/syncapi/routing/memberships.go
+++ b/syncapi/routing/memberships.go
@@ -19,13 +19,13 @@ import (
"math"
"net/http"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -67,26 +67,26 @@ func GetMemberships(
var queryRes api.QueryMembershipForUserResponse
if err := rsAPI.QueryMembershipForUser(req.Context(), &queryReq, &queryRes); err != nil {
util.GetLogger(req.Context()).WithError(err).Error("rsAPI.QueryMembershipsForRoom failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
if !queryRes.HasBeenInRoom {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Forbidden("You aren't a member of the room and weren't previously a member of the room."),
+ JSON: spec.Forbidden("You aren't a member of the room and weren't previously a member of the room."),
}
}
if joinedOnly && !queryRes.IsInRoom {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Forbidden("You aren't a member of the room and weren't previously a member of the room."),
+ JSON: spec.Forbidden("You aren't a member of the room and weren't previously a member of the room."),
}
}
db, err := syncDB.NewDatabaseSnapshot(req.Context())
if err != nil {
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
defer db.Rollback() // nolint: errcheck
@@ -98,7 +98,7 @@ func GetMemberships(
atToken, err = db.EventPositionInTopology(req.Context(), queryRes.EventID)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("unable to get 'atToken'")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
}
}
@@ -106,13 +106,13 @@ func GetMemberships(
eventIDs, err := db.SelectMemberships(req.Context(), roomID, atToken, membership, notMembership)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("db.SelectMemberships failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
qryRes := &api.QueryEventsByIDResponse{}
if err := rsAPI.QueryEventsByID(req.Context(), &api.QueryEventsByIDRequest{EventIDs: eventIDs, RoomID: roomID}, qryRes); err != nil {
util.GetLogger(req.Context()).WithError(err).Error("rsAPI.QueryEventsByID failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
result := qryRes.Events
@@ -124,7 +124,7 @@ func GetMemberships(
var content databaseJoinedMember
if err := json.Unmarshal(ev.Content(), &content); err != nil {
util.GetLogger(req.Context()).WithError(err).Error("failed to unmarshal event content")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
res.Joined[ev.Sender()] = joinedMember(content)
}
diff --git a/syncapi/routing/messages.go b/syncapi/routing/messages.go
index 54b72c64..4d3c9e2e 100644
--- a/syncapi/routing/messages.go
+++ b/syncapi/routing/messages.go
@@ -27,7 +27,6 @@ import (
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -82,7 +81,7 @@ func OnIncomingMessagesRequest(
// request that requires backfilling from the roomserver or federation.
snapshot, err := db.NewDatabaseTransaction(req.Context())
if err != nil {
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
var succeeded bool
defer sqlutil.EndTransactionWithCheck(snapshot, &succeeded, &err)
@@ -90,19 +89,19 @@ func OnIncomingMessagesRequest(
// check if the user has already forgotten about this room
membershipResp, err := getMembershipForUser(req.Context(), roomID, device.UserID, rsAPI)
if err != nil {
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
if !membershipResp.RoomExists {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Forbidden("room does not exist"),
+ JSON: spec.Forbidden("room does not exist"),
}
}
if membershipResp.IsRoomForgotten {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Forbidden("user already forgot about this room"),
+ JSON: spec.Forbidden("user already forgot about this room"),
}
}
@@ -110,7 +109,7 @@ func OnIncomingMessagesRequest(
if err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.InvalidArgumentValue("unable to parse filter"),
+ JSON: spec.InvalidParam("unable to parse filter"),
}
}
@@ -132,7 +131,7 @@ func OnIncomingMessagesRequest(
if dir != "b" && dir != "f" {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.MissingArgument("Bad or missing dir query parameter (should be either 'b' or 'f')"),
+ JSON: spec.MissingParam("Bad or missing dir query parameter (should be either 'b' or 'f')"),
}
}
// A boolean is easier to handle in this case, especially since dir is sure
@@ -145,14 +144,14 @@ func OnIncomingMessagesRequest(
if streamToken, err = types.NewStreamTokenFromString(fromQuery); err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.InvalidArgumentValue("Invalid from parameter: " + err.Error()),
+ JSON: spec.InvalidParam("Invalid from parameter: " + err.Error()),
}
} else {
fromStream = &streamToken
from, err = snapshot.StreamToTopologicalPosition(req.Context(), roomID, streamToken.PDUPosition, backwardOrdering)
if err != nil {
logrus.WithError(err).Errorf("Failed to get topological position for streaming token %v", streamToken)
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
}
}
@@ -168,13 +167,13 @@ func OnIncomingMessagesRequest(
if streamToken, err = types.NewStreamTokenFromString(toQuery); err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.InvalidArgumentValue("Invalid to parameter: " + err.Error()),
+ JSON: spec.InvalidParam("Invalid to parameter: " + err.Error()),
}
} else {
to, err = snapshot.StreamToTopologicalPosition(req.Context(), roomID, streamToken.PDUPosition, !backwardOrdering)
if err != nil {
logrus.WithError(err).Errorf("Failed to get topological position for streaming token %v", streamToken)
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
}
}
@@ -197,7 +196,7 @@ func OnIncomingMessagesRequest(
if _, _, err = gomatrixserverlib.SplitID('!', roomID); err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.MissingArgument("Bad room ID: " + err.Error()),
+ JSON: spec.MissingParam("Bad room ID: " + err.Error()),
}
}
@@ -233,7 +232,7 @@ func OnIncomingMessagesRequest(
clientEvents, start, end, err := mReq.retrieveEvents()
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("mreq.retrieveEvents failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
util.GetLogger(req.Context()).WithFields(logrus.Fields{
@@ -254,7 +253,7 @@ func OnIncomingMessagesRequest(
membershipEvents, err := applyLazyLoadMembers(req.Context(), device, snapshot, roomID, clientEvents, lazyLoadCache)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("failed to apply lazy loading")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
res.State = append(res.State, synctypes.ToClientEvents(gomatrixserverlib.ToPDUs(membershipEvents), synctypes.FormatAll)...)
}
diff --git a/syncapi/routing/relations.go b/syncapi/routing/relations.go
index 55e4347d..2bf11a56 100644
--- a/syncapi/routing/relations.go
+++ b/syncapi/routing/relations.go
@@ -21,7 +21,6 @@ import (
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/roomserver/api"
rstypes "github.com/matrix-org/dendrite/roomserver/types"
@@ -30,6 +29,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
"github.com/matrix-org/dendrite/syncapi/types"
userapi "github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type RelationsResponse struct {
@@ -73,14 +73,14 @@ func Relations(
if dir != "b" && dir != "f" {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.MissingArgument("Bad or missing dir query parameter (should be either 'b' or 'f')"),
+ JSON: spec.MissingParam("Bad or missing dir query parameter (should be either 'b' or 'f')"),
}
}
snapshot, err := syncDB.NewDatabaseSnapshot(req.Context())
if err != nil {
logrus.WithError(err).Error("Failed to get snapshot for relations")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
var succeeded bool
defer sqlutil.EndTransactionWithCheck(snapshot, &succeeded, &err)
diff --git a/syncapi/routing/routing.go b/syncapi/routing/routing.go
index 9607aa32..88c5c504 100644
--- a/syncapi/routing/routing.go
+++ b/syncapi/routing/routing.go
@@ -21,7 +21,6 @@ import (
"github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/fulltext"
"github.com/matrix-org/dendrite/internal/httputil"
@@ -158,12 +157,12 @@ func Setup(
if !cfg.Fulltext.Enabled {
return util.JSONResponse{
Code: http.StatusNotImplemented,
- JSON: jsonerror.Unknown("Search has been disabled by the server administrator."),
+ JSON: spec.Unknown("Search has been disabled by the server administrator."),
}
}
var nextBatch *string
if err := req.ParseForm(); err != nil {
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
if req.Form.Has("next_batch") {
nb := req.FormValue("next_batch")
diff --git a/syncapi/routing/search.go b/syncapi/routing/search.go
index 5f037392..986284d0 100644
--- a/syncapi/routing/search.go
+++ b/syncapi/routing/search.go
@@ -29,7 +29,6 @@ import (
"github.com/tidwall/gjson"
"github.com/matrix-org/dendrite/clientapi/httputil"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/internal/fulltext"
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/roomserver/types"
@@ -56,7 +55,7 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
if from != nil && *from != "" {
nextBatch, err = strconv.Atoi(*from)
if err != nil {
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
}
@@ -66,7 +65,7 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
snapshot, err := syncDB.NewDatabaseSnapshot(req.Context())
if err != nil {
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
var succeeded bool
defer sqlutil.EndTransactionWithCheck(snapshot, &succeeded, &err)
@@ -74,12 +73,12 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
// only search rooms the user is actually joined to
joinedRooms, err := snapshot.RoomIDsWithMembership(ctx, device.UserID, "join")
if err != nil {
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
if len(joinedRooms) == 0 {
return util.JSONResponse{
Code: http.StatusNotFound,
- JSON: jsonerror.NotFound("User not joined to any rooms."),
+ JSON: spec.NotFound("User not joined to any rooms."),
}
}
joinedRoomsMap := make(map[string]struct{}, len(joinedRooms))
@@ -100,7 +99,7 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
if len(rooms) == 0 {
return util.JSONResponse{
Code: http.StatusForbidden,
- JSON: jsonerror.Unknown("User not allowed to search in this room(s)."),
+ JSON: spec.Unknown("User not allowed to search in this room(s)."),
}
}
@@ -116,7 +115,7 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
)
if err != nil {
logrus.WithError(err).Error("failed to search fulltext")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
logrus.Debugf("Search took %s", result.Took)
@@ -156,7 +155,7 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
evs, err := syncDB.Events(ctx, wantEvents)
if err != nil {
logrus.WithError(err).Error("failed to get events from database")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
groups := make(map[string]RoomResult)
@@ -174,12 +173,12 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
eventsBefore, eventsAfter, err := contextEvents(ctx, snapshot, event, roomFilter, searchReq)
if err != nil {
logrus.WithError(err).Error("failed to get context events")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
startToken, endToken, err := getStartEnd(ctx, snapshot, eventsBefore, eventsAfter)
if err != nil {
logrus.WithError(err).Error("failed to get start/end")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
profileInfos := make(map[string]ProfileInfoResponse)
@@ -222,7 +221,7 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
state, err := snapshot.CurrentState(ctx, event.RoomID(), &stateFilter, nil)
if err != nil {
logrus.WithError(err).Error("unable to get current state")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
stateForRooms[event.RoomID()] = synctypes.ToClientEvents(gomatrixserverlib.ToPDUs(state), synctypes.FormatSync)
}
diff --git a/syncapi/sync/requestpool.go b/syncapi/sync/requestpool.go
index 6baaff3c..09e5dee1 100644
--- a/syncapi/sync/requestpool.go
+++ b/syncapi/sync/requestpool.go
@@ -30,7 +30,6 @@ import (
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
- "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/internal/sqlutil"
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/setup/config"
@@ -232,12 +231,12 @@ func (rp *RequestPool) OnIncomingSyncRequest(req *http.Request, device *userapi.
if err == types.ErrMalformedSyncToken {
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.InvalidArgumentValue(err.Error()),
+ JSON: spec.InvalidParam(err.Error()),
}
}
return util.JSONResponse{
Code: http.StatusBadRequest,
- JSON: jsonerror.Unknown(err.Error()),
+ JSON: spec.Unknown(err.Error()),
}
}
@@ -517,32 +516,32 @@ func (rp *RequestPool) OnIncomingKeyChangeRequest(req *http.Request, device *use
if from == "" || to == "" {
return util.JSONResponse{
Code: 400,
- JSON: jsonerror.InvalidArgumentValue("missing ?from= or ?to="),
+ JSON: spec.InvalidParam("missing ?from= or ?to="),
}
}
fromToken, err := types.NewStreamTokenFromString(from)
if err != nil {
return util.JSONResponse{
Code: 400,
- JSON: jsonerror.InvalidArgumentValue("bad 'from' value"),
+ JSON: spec.InvalidParam("bad 'from' value"),
}
}
toToken, err := types.NewStreamTokenFromString(to)
if err != nil {
return util.JSONResponse{
Code: 400,
- JSON: jsonerror.InvalidArgumentValue("bad 'to' value"),
+ JSON: spec.InvalidParam("bad 'to' value"),
}
}
syncReq, err := newSyncRequest(req, *device, rp.db)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("newSyncRequest failed")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
snapshot, err := rp.db.NewDatabaseSnapshot(req.Context())
if err != nil {
logrus.WithError(err).Error("Failed to acquire database snapshot for key change")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
var succeeded bool
defer sqlutil.EndTransactionWithCheck(snapshot, &succeeded, &err)
@@ -553,7 +552,7 @@ func (rp *RequestPool) OnIncomingKeyChangeRequest(req *http.Request, device *use
)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("Failed to DeviceListCatchup info")
- return jsonerror.InternalServerError()
+ return spec.InternalServerError()
}
succeeded = true
return util.JSONResponse{