diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2020-04-24 16:30:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-24 16:30:25 +0100 |
commit | 3ab8ebf6b8fbc813bfb3e0e0735e76a69a8ed2dd (patch) | |
tree | a5e83730ac7c8e7f8b53b102c4a426a1ce930ba8 /roomserver/storage/postgres/storage.go | |
parent | be558f02aa956cfff51c5dfcf57575b46254b0db (diff) |
More invite support (#979)
* Update gomatixserverlib
* Try to build invite stripped state if not given to us
* SendInvite improvements
* Transpose invite_room_state into invite_state.events for sync API
* Remove syncapi debugging output
* Use RespInviteV2
* Update gomatrixserverlib
* Send the invite event as a normal roomserver event too, for incorporating into room (should this be done by the roomserver automatically for invite inputs?)
* Federation sender use invite_room_state, room server try to insert membership state
* Check supported room versions on the invite endpoint
* Prevent roomserver query API from trying to handle requests for stub rooms
* Adding a nolint
* Replace IsRoomStub with RoomNIDExcludingStubs, fix query API to use that instead
* Review comments
Diffstat (limited to 'roomserver/storage/postgres/storage.go')
-rw-r--r-- | roomserver/storage/postgres/storage.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/roomserver/storage/postgres/storage.go b/roomserver/storage/postgres/storage.go index 6f2b9661..5b5c61b0 100644 --- a/roomserver/storage/postgres/storage.go +++ b/roomserver/storage/postgres/storage.go @@ -471,6 +471,23 @@ func (d *Database) RoomNID(ctx context.Context, roomID string) (types.RoomNID, e return roomNID, err } +// RoomNIDExcludingStubs implements query.RoomserverQueryAPIDB +func (d *Database) RoomNIDExcludingStubs(ctx context.Context, roomID string) (roomNID types.RoomNID, err error) { + roomNID, err = d.RoomNID(ctx, roomID) + if err != nil { + return + } + latestEvents, _, err := d.statements.selectLatestEventNIDs(ctx, roomNID) + if err != nil { + return + } + if len(latestEvents) == 0 { + roomNID = 0 + return + } + return +} + // LatestEventIDs implements query.RoomserverQueryAPIDatabase func (d *Database) LatestEventIDs( ctx context.Context, roomNID types.RoomNID, |