mirror of
https://github.com/tulir/gomuks.git
synced 2025-04-20 10:33:41 -05:00
Add method to return latest state event of type
This commit is contained in:
parent
cbb17effbf
commit
2dbe60384f
1 changed files with 17 additions and 0 deletions
|
@ -463,6 +463,23 @@ func (room *Room) GetStateEvent(eventType event.Type, stateKey string) *event.Ev
|
||||||
return evt
|
return evt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetMostRecentEvent returns the most recent state event for the given
|
||||||
|
// type, or nil.
|
||||||
|
func (room *Room) GetMostRecentEvent(eventType event.Type) *event.Event {
|
||||||
|
room.Load()
|
||||||
|
room.lock.RLock()
|
||||||
|
defer room.lock.RUnlock()
|
||||||
|
stateEventMap, _ := room.state[eventType]
|
||||||
|
|
||||||
|
var evt *event.Event = nil
|
||||||
|
for _, e := range stateEventMap {
|
||||||
|
if evt == nil || time.UnixMilli(e.Timestamp).After(time.UnixMilli(evt.Timestamp)) {
|
||||||
|
evt = e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return evt
|
||||||
|
}
|
||||||
|
|
||||||
// getStateEvents returns the state events for the given type.
|
// getStateEvents returns the state events for the given type.
|
||||||
func (room *Room) getStateEvents(eventType event.Type) map[string]*event.Event {
|
func (room *Room) getStateEvents(eventType event.Type) map[string]*event.Event {
|
||||||
stateEventMap, _ := room.state[eventType]
|
stateEventMap, _ := room.state[eventType]
|
||||||
|
|
Loading…
Add table
Reference in a new issue