aboutsummaryrefslogtreecommitdiff
path: root/roomserver/storage/postgres
diff options
context:
space:
mode:
authorTill <2353100+S7evinK@users.noreply.github.com>2022-10-07 16:00:12 +0200
committerGitHub <noreply@github.com>2022-10-07 16:00:12 +0200
commit1ca3f3efb512db4c1827eb571588ec31258782a5 (patch)
tree6df45c6b24e30064e34055464dd514a58eae837a /roomserver/storage/postgres
parent8e231130e97ce716357bbb4af8f82159dc6e684e (diff)
Fix issue with DMs shown as normal rooms (#2776)
Fixes #2121, test added in https://github.com/matrix-org/complement/pull/494
Diffstat (limited to 'roomserver/storage/postgres')
-rw-r--r--roomserver/storage/postgres/invite_table.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/roomserver/storage/postgres/invite_table.go b/roomserver/storage/postgres/invite_table.go
index 4cddfe2e..009fd1ac 100644
--- a/roomserver/storage/postgres/invite_table.go
+++ b/roomserver/storage/postgres/invite_table.go
@@ -61,7 +61,7 @@ const insertInviteEventSQL = "" +
" ON CONFLICT DO NOTHING"
const selectInviteActiveForUserInRoomSQL = "" +
- "SELECT invite_event_id, sender_nid FROM roomserver_invites" +
+ "SELECT invite_event_id, sender_nid, invite_event_json FROM roomserver_invites" +
" WHERE target_nid = $1 AND room_nid = $2" +
" AND NOT retired"
@@ -141,25 +141,26 @@ func (s *inviteStatements) UpdateInviteRetired(
func (s *inviteStatements) SelectInviteActiveForUserInRoom(
ctx context.Context, txn *sql.Tx,
targetUserNID types.EventStateKeyNID, roomNID types.RoomNID,
-) ([]types.EventStateKeyNID, []string, error) {
+) ([]types.EventStateKeyNID, []string, []byte, error) {
stmt := sqlutil.TxStmt(txn, s.selectInviteActiveForUserInRoomStmt)
rows, err := stmt.QueryContext(
ctx, targetUserNID, roomNID,
)
if err != nil {
- return nil, nil, err
+ return nil, nil, nil, err
}
defer internal.CloseAndLogIfError(ctx, rows, "selectInviteActiveForUserInRoom: rows.close() failed")
var result []types.EventStateKeyNID
var eventIDs []string
var inviteEventID string
var senderUserNID int64
+ var eventJSON []byte
for rows.Next() {
- if err := rows.Scan(&inviteEventID, &senderUserNID); err != nil {
- return nil, nil, err
+ if err := rows.Scan(&inviteEventID, &senderUserNID, &eventJSON); err != nil {
+ return nil, nil, nil, err
}
result = append(result, types.EventStateKeyNID(senderUserNID))
eventIDs = append(eventIDs, inviteEventID)
}
- return result, eventIDs, rows.Err()
+ return result, eventIDs, eventJSON, rows.Err()
}