mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-07 06:53:09 -06:00
Review comments
This commit is contained in:
parent
6b86d68bed
commit
f62751ef10
|
|
@ -224,9 +224,13 @@ func (s *outputRoomEventsStatements) RecentEventsInRoom(txn *sql.Tx, roomID stri
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
events, err := rowsToEvents(rows)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
// reverse the order because [0] is the newest event due to the ORDER BY in SQL-land. The reverse order makes [0] the oldest event,
|
// reverse the order because [0] is the newest event due to the ORDER BY in SQL-land. The reverse order makes [0] the oldest event,
|
||||||
// which is correct for /sync responses.
|
// which is correct for /sync responses.
|
||||||
return rowsToEvents(rows, rowOrderReverse)
|
return reverseEvents(events), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Events returns the events for the given event IDs. Returns an error if any one of the event IDs given are missing
|
// Events returns the events for the given event IDs. Returns an error if any one of the event IDs given are missing
|
||||||
|
|
@ -237,7 +241,7 @@ func (s *outputRoomEventsStatements) Events(txn *sql.Tx, eventIDs []string) ([]g
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
result, err := rowsToEvents(rows, rowOrderForward)
|
result, err := rowsToEvents(rows)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -248,14 +252,7 @@ func (s *outputRoomEventsStatements) Events(txn *sql.Tx, eventIDs []string) ([]g
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type rowOrdering uint8
|
func rowsToEvents(rows *sql.Rows) ([]gomatrixserverlib.Event, error) {
|
||||||
|
|
||||||
const (
|
|
||||||
rowOrderForward = rowOrdering(iota)
|
|
||||||
rowOrderReverse
|
|
||||||
)
|
|
||||||
|
|
||||||
func rowsToEvents(rows *sql.Rows, order rowOrdering) ([]gomatrixserverlib.Event, error) {
|
|
||||||
var result []gomatrixserverlib.Event
|
var result []gomatrixserverlib.Event
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var eventBytes []byte
|
var eventBytes []byte
|
||||||
|
|
@ -267,14 +264,14 @@ func rowsToEvents(rows *sql.Rows, order rowOrdering) ([]gomatrixserverlib.Event,
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if order == rowOrderForward {
|
result = append(result, ev)
|
||||||
result = append(result, ev)
|
|
||||||
} else if order == rowOrderReverse {
|
|
||||||
result = append([]gomatrixserverlib.Event{ev}, result...)
|
|
||||||
} else {
|
|
||||||
return nil, fmt.Errorf("rowsToEvents: bad order %d", order)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func reverseEvents(input []gomatrixserverlib.Event) (output []gomatrixserverlib.Event) {
|
||||||
|
for i := len(input) - 1; i >= 0; i-- {
|
||||||
|
output = append(output, input[i])
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue