diff options
author | Stephen Kiers <stephen@stephenkiers.com> | 2018-03-09 05:48:30 -0700 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2018-03-09 07:48:30 -0500 |
commit | 302dae5bb982aad14324a4df61a018557f3dd24e (patch) | |
tree | 8e1b8b52b3c717dd90ade42ad6dd1e3a265d9903 /app/status.go | |
parent | 31532f7feb4055f42538e23d48d4f0c941609db1 (diff) | |
download | chat-302dae5bb982aad14324a4df61a018557f3dd24e.tar.gz chat-302dae5bb982aad14324a4df61a018557f3dd24e.tar.bz2 chat-302dae5bb982aad14324a4df61a018557f3dd24e.zip |
MM-9274- Sort Users in Channel by status (#8181)
* sort by lastActivity
* added status ordering to Users
* sort offline before dnd
* remove data not needed
* added seperate call for when order=‘status’ is on GetUser request
* remove PrintLn
* styling fix
* remove mistake
* mistake 2
* better comment
* explicit if statemnt
* writing tests
* removed manually added mocks
* generated mock
* ICU-668 Added unit tests
* style fix
* sort by lastActivity
* added status ordering to Users
* sort offline before dnd
* remove data not needed
* added seperate call for when order=‘status’ is on GetUser request
* remove PrintLn
* styling fix
* remove mistake
* mistake 2
* better comment
* explicit if statemnt
* writing tests
* removed manually added mocks
* generated mock
* ICU-668 Added unit tests
* style fix
* reverse dnd and offline
* Fixed app.SaveStatusAndBroadcast
* Fixed incorrect merge
* Fixing incorrect merge again
Diffstat (limited to 'app/status.go')
-rw-r--r-- | app/status.go | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/app/status.go b/app/status.go index d677f9a23..c8bff0d1a 100644 --- a/app/status.go +++ b/app/status.go @@ -236,16 +236,7 @@ func (a *App) SetStatusOffline(userId string, manual bool) { status = &model.Status{UserId: userId, Status: model.STATUS_OFFLINE, Manual: manual, LastActivityAt: model.GetMillis(), ActiveChannel: ""} - a.AddStatusCache(status) - - if result := <-a.Srv.Store.Status().SaveOrUpdate(status); result.Err != nil { - l4g.Error(utils.T("api.status.save_status.error"), userId, result.Err) - } - - event := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_STATUS_CHANGE, "", "", status.UserId, nil) - event.Add("status", model.STATUS_OFFLINE) - event.Add("user_id", status.UserId) - a.Publish(event) + a.SaveAndBroadcastStatus(status) } func (a *App) SetStatusAwayIfNeeded(userId string, manual bool) { @@ -277,16 +268,7 @@ func (a *App) SetStatusAwayIfNeeded(userId string, manual bool) { status.Manual = manual status.ActiveChannel = "" - a.AddStatusCache(status) - - if result := <-a.Srv.Store.Status().SaveOrUpdate(status); result.Err != nil { - l4g.Error(utils.T("api.status.save_status.error"), userId, result.Err) - } - - event := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_STATUS_CHANGE, "", "", status.UserId, nil) - event.Add("status", model.STATUS_AWAY) - event.Add("user_id", status.UserId) - a.Publish(event) + a.SaveAndBroadcastStatus(status) } func (a *App) SetStatusDoNotDisturb(userId string) { @@ -303,16 +285,22 @@ func (a *App) SetStatusDoNotDisturb(userId string) { status.Status = model.STATUS_DND status.Manual = true + a.SaveAndBroadcastStatus(status) +} + +func (a *App) SaveAndBroadcastStatus(status *model.Status) *model.AppError { a.AddStatusCache(status) if result := <-a.Srv.Store.Status().SaveOrUpdate(status); result.Err != nil { - l4g.Error(utils.T("api.status.save_status.error"), userId, result.Err) + l4g.Error(utils.T("api.status.save_status.error"), status.UserId, result.Err) } event := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_STATUS_CHANGE, "", "", status.UserId, nil) - event.Add("status", model.STATUS_DND) + event.Add("status", status.Status) event.Add("user_id", status.UserId) a.Publish(event) + + return nil } func GetStatusFromCache(userId string) *model.Status { |