Other: Add UserLoading/UserLoadFail events

This commit is contained in:
James Houlahan
2022-11-02 13:32:14 +01:00
parent 75b788b793
commit 943d95a725
3 changed files with 31 additions and 8 deletions

View File

@ -311,18 +311,26 @@ func (bridge *Bridge) loadUsers(ctx context.Context) error {
return nil
}
logrus.WithField("userID", user.UserID()).Debug("Loading user")
if safe.RLockRet(func() bool {
return mapHas(bridge.users, user.UserID())
}, bridge.usersLock) {
if safe.RLockRet(func() bool { return mapHas(bridge.users, user.UserID()) }, bridge.usersLock) {
return nil
}
logrus.WithField("userID", user.UserID()).Debug("Loading connected user")
bridge.publish(events.UserLoading{
UserID: user.UserID(),
})
if err := bridge.loadUser(ctx, user); err != nil {
logrus.WithError(err).Error("Failed to load connected user")
bridge.publish(events.UserLoadFail{
UserID: user.UserID(),
})
} else {
bridge.publish(events.UserLoaded{
logrus.WithField("userID", user.UserID()).Debug("Loaded user")
bridge.publish(events.UserLoadSuccess{
UserID: user.UserID(),
})
}