From e1a5d973d281129cabbedf9c5592b8eaf4441a73 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 15 Oct 2018 21:55:03 -0600 Subject: [PATCH] Documentation and other misc touchups --- .../matrix-org/dendrite/clientapi/routing/memberships.go | 2 +- .../matrix-org/dendrite/roomserver/api/query.go | 1 + .../matrix-org/dendrite/roomserver/query/query.go | 2 +- .../matrix-org/dendrite/roomserver/storage/storage.go | 9 ++++++++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/github.com/matrix-org/dendrite/clientapi/routing/memberships.go b/src/github.com/matrix-org/dendrite/clientapi/routing/memberships.go index f2785ff5c..8b8a39e0b 100644 --- a/src/github.com/matrix-org/dendrite/clientapi/routing/memberships.go +++ b/src/github.com/matrix-org/dendrite/clientapi/routing/memberships.go @@ -31,7 +31,7 @@ type response struct { } type joinedResponse struct { - JoinedRooms []string `json:"joined_rooms,flow"` + JoinedRooms []string `json:"joined_rooms"` } // GetMemberships implements GET /rooms/{roomId}/members diff --git a/src/github.com/matrix-org/dendrite/roomserver/api/query.go b/src/github.com/matrix-org/dendrite/roomserver/api/query.go index 807831270..aa6c0110c 100644 --- a/src/github.com/matrix-org/dendrite/roomserver/api/query.go +++ b/src/github.com/matrix-org/dendrite/roomserver/api/query.go @@ -412,6 +412,7 @@ func (h *httpRoomserverQueryAPI) QueryMembershipsForRoom( return commonHTTP.PostJSON(ctx, span, h.httpClient, apiURL, request, response) } +// QueryRoomsForUser implements RoomserverQueryAPI func (h *httpRoomserverQueryAPI) QueryRoomsForUser( ctx context.Context, request *QueryRoomsForUserRequest, diff --git a/src/github.com/matrix-org/dendrite/roomserver/query/query.go b/src/github.com/matrix-org/dendrite/roomserver/query/query.go index 387bf1389..0d8928179 100644 --- a/src/github.com/matrix-org/dendrite/roomserver/query/query.go +++ b/src/github.com/matrix-org/dendrite/roomserver/query/query.go @@ -76,7 +76,7 @@ type RoomserverQueryAPIDatabase interface { ctx context.Context, roomNID types.RoomNID, joinOnly bool, ) ([]types.EventNID, error) // Lookup the rooms for which a user has a particular membership state. - // Returns an error if there was a problem talkign to the database. + // Returns an error if there was a problem talking to the database. GetRoomsForUserMembership( ctx context.Context, userNID types.EventStateKeyNID, membership string, ) ([]types.RoomNID, error) diff --git a/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go b/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go index 6f7db82af..d968f8268 100644 --- a/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go +++ b/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go @@ -17,6 +17,7 @@ package storage import ( "context" "database/sql" + "github.com/pkg/errors" // Import the postgres database driver. _ "github.com/lib/pq" @@ -412,6 +413,7 @@ func (d *Database) RoomNID(ctx context.Context, roomID string) (types.RoomNID, e return roomNID, err } +// GetRoomIDs implements query.RoomserverQueryAPIDatabase func (d *Database) GetRoomIDs(ctx context.Context, roomNIDs []types.RoomNID) ([]string, error) { roomIDs := make([]string, 0) @@ -446,16 +448,21 @@ func (d *Database) LatestEventIDs( return references, currentStateSnapshotNID, depth, nil } +// GetRoomsForUserMembership implements query.RoomserverQueryAPIDatabase func (d *Database) GetRoomsForUserMembership( ctx context.Context, userNID types.EventStateKeyNID, membership string, ) (roomNIDs []types.RoomNID, err error) { - membershipNID := membershipStateLeaveOrBan + var membershipNID membershipState if membership == "join" { membershipNID = membershipStateJoin } else if membership == "invite" { membershipNID = membershipStateInvite + } else if membership == "ban" || membership == "leave" { + membershipNID = membershipStateLeaveOrBan + } else { + return nil, errors.New("invalid membership") } return d.statements.selectRoomsForUserMembership(ctx, userNID, membershipNID) }