fixed review changes

This commit is contained in:
Prateek Sachan 2020-02-06 05:27:35 +05:30
parent 32827f01c6
commit 4a4dac9fae
3 changed files with 13 additions and 31 deletions

View file

@ -80,12 +80,12 @@ const selectEventsSQL = "" +
const selectRecentEventsSQL = "" +
"SELECT id, event_json, session_id, exclude_from_sync, transaction_id FROM syncapi_output_room_events" +
" WHERE room_id = $1 AND id > $2 AND id <= $3" +
" WHERE room_id = $1 AND id > $2 AND id <= $3 AND sender != ALL($5)" +
" ORDER BY id DESC LIMIT $4"
const selectRecentEventsForSyncSQL = "" +
"SELECT id, event_json, session_id, exclude_from_sync, transaction_id FROM syncapi_output_room_events" +
" WHERE room_id = $1 AND id > $2 AND id <= $3 AND exclude_from_sync = FALSE" +
" WHERE room_id = $1 AND id > $2 AND id <= $3 AND exclude_from_sync = FALSE AND sender != ALL($5)" +
" ORDER BY id DESC LIMIT $4"
const selectEarlyEventsSQL = "" +
@ -290,7 +290,7 @@ func (s *outputRoomEventsStatements) insertEvent(
func (s *outputRoomEventsStatements) selectRecentEvents(
ctx context.Context, txn *sql.Tx,
roomID string, fromPos, toPos types.StreamPosition, limit int,
chronologicalOrder bool, onlySyncEvents bool,
chronologicalOrder bool, onlySyncEvents bool, ignoredUsers []string,
) ([]types.StreamEvent, error) {
var stmt *sql.Stmt
if onlySyncEvents {
@ -299,7 +299,7 @@ func (s *outputRoomEventsStatements) selectRecentEvents(
stmt = common.TxStmt(txn, s.selectRecentEventsStmt)
}
rows, err := stmt.QueryContext(ctx, roomID, fromPos, toPos, limit)
rows, err := stmt.QueryContext(ctx, roomID, fromPos, toPos, limit, pq.StringArray(ignoredUsers))
if err != nil {
return nil, err
}

View file

@ -292,7 +292,7 @@ func (d *SyncServerDatasource) GetEventsInRange(
if backwardOrdering {
// When using backward ordering, we want the most recent events first.
if events, err = d.events.selectRecentEvents(
ctx, nil, roomID, to.PDUPosition, from.PDUPosition, limit, false, false,
ctx, nil, roomID, to.PDUPosition, from.PDUPosition, limit, false, false, nil,
); err != nil {
return
}
@ -612,12 +612,11 @@ func (d *SyncServerDatasource) getResponseWithPDUsForCompleteSync(
var recentStreamEvents []types.StreamEvent
recentStreamEvents, err = d.events.selectRecentEvents(
ctx, txn, roomID, types.StreamPosition(0), toPos.PDUPosition,
numRecentEventsPerRoom, true, true,
numRecentEventsPerRoom, true, true, ignoredUsers,
)
if err != nil {
return
}
recentStreamEvents = removeIgnoredUserEvents(recentStreamEvents, ignoredUsers)
// Retrieve the backward topology position, i.e. the position of the
// oldest event in the room's topology.
@ -651,26 +650,6 @@ func (d *SyncServerDatasource) getResponseWithPDUsForCompleteSync(
return res, toPos, joinedRoomIDs, err
}
func removeIgnoredUserEvents(events []types.StreamEvent, ignoredUsers []string) []types.StreamEvent {
if len(ignoredUsers) == 0 {
return events
}
eventsWithoutIgnoredUsers := make([]types.StreamEvent, 0, len(events))
for _, event := range events {
isSenderIgnored := false
for _, ignoredUser := range ignoredUsers {
if ignoredUser == event.Sender() {
isSenderIgnored = true
break
}
}
if !isSenderIgnored {
eventsWithoutIgnoredUsers = append(eventsWithoutIgnoredUsers, event)
}
}
return eventsWithoutIgnoredUsers
}
// CompleteSync returns a complete /sync API response for the given user.
func (d *SyncServerDatasource) CompleteSync(
ctx context.Context, userID string, numRecentEventsPerRoom int, ignoredUsers []string,
@ -830,12 +809,11 @@ func (d *SyncServerDatasource) addRoomDeltaToResponse(
}
recentStreamEvents, err := d.events.selectRecentEvents(
ctx, txn, delta.roomID, types.StreamPosition(fromPos), types.StreamPosition(endPos),
numRecentEventsPerRoom, true, true,
numRecentEventsPerRoom, true, true, ignoredUsers,
)
if err != nil {
return err
}
recentStreamEvents = removeIgnoredUserEvents(recentStreamEvents, ignoredUsers)
recentEvents := d.StreamEventsToEvents(device, recentStreamEvents)
delta.stateEvents = removeDuplicates(delta.stateEvents, recentEvents) // roll back
backwardTopologyPos := d.getBackwardTopologyPos(ctx, recentStreamEvents)

View file

@ -138,9 +138,13 @@ func (rp *RequestPool) currentSyncForUser(req syncRequest, latestPos types.Pagin
return
}
var ignoredUserList []string
if data, e := rp.accountDB.GetAccountDataByType(req.ctx, localpart, "", "m.ignored_user_list"); e == nil && data != nil {
data, err := rp.accountDB.GetAccountDataByType(req.ctx, localpart, "", "m.ignored_user_list")
if err != nil {
return
}
if data != nil {
var ignoredUserMap map[string]map[string]interface{}
if e = json.Unmarshal(data.Content, &ignoredUserMap); e == nil {
if err = json.Unmarshal(data.Content, &ignoredUserMap); err == nil {
ignoredUserList = make([]string, 0, len(ignoredUserMap))
for ignoredUser := range ignoredUserMap["ignored_users"] {
ignoredUserList = append(ignoredUserList, ignoredUser)