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 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 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 { if err := bridge.loadUser(ctx, user); err != nil {
logrus.WithError(err).Error("Failed to load connected user") logrus.WithError(err).Error("Failed to load connected user")
bridge.publish(events.UserLoadFail{
UserID: user.UserID(),
})
} else { } else {
bridge.publish(events.UserLoaded{ logrus.WithField("userID", user.UserID()).Debug("Loaded user")
bridge.publish(events.UserLoadSuccess{
UserID: user.UserID(), UserID: user.UserID(),
}) })
} }

View File

@ -23,7 +23,19 @@ type AllUsersLoaded struct {
eventBase eventBase
} }
type UserLoaded struct { type UserLoading struct {
eventBase
UserID string
}
type UserLoadSuccess struct {
eventBase
UserID string
}
type UserLoadFail struct {
eventBase eventBase
UserID string UserID string

View File

@ -244,7 +244,10 @@ func (s *Service) watchEvents() { //nolint:funlen
case events.UserChanged: case events.UserChanged:
_ = s.SendEvent(NewUserChangedEvent(event.UserID)) _ = s.SendEvent(NewUserChangedEvent(event.UserID))
case events.UserLoaded: case events.UserLoadSuccess:
_ = s.SendEvent(NewUserChangedEvent(event.UserID))
case events.UserLoadFail:
_ = s.SendEvent(NewUserChangedEvent(event.UserID)) _ = s.SendEvent(NewUserChangedEvent(event.UserID))
case events.UserLoggedIn: case events.UserLoggedIn: