summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/mattermost-server/v6/model/status.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/mattermost/mattermost-server/v6/model/status.go')
-rw-r--r--vendor/github.com/mattermost/mattermost-server/v6/model/status.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/status.go b/vendor/github.com/mattermost/mattermost-server/v6/model/status.go
new file mode 100644
index 00000000..45a6d5d2
--- /dev/null
+++ b/vendor/github.com/mattermost/mattermost-server/v6/model/status.go
@@ -0,0 +1,55 @@
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
+// See LICENSE.txt for license information.
+
+package model
+
+import (
+ "encoding/json"
+)
+
+const (
+ StatusOutOfOffice = "ooo"
+ StatusOffline = "offline"
+ StatusAway = "away"
+ StatusDnd = "dnd"
+ StatusOnline = "online"
+ StatusCacheSize = SessionCacheSize
+ StatusChannelTimeout = 20000 // 20 seconds
+ StatusMinUpdateTime = 120000 // 2 minutes
+)
+
+type Status struct {
+ UserId string `json:"user_id"`
+ Status string `json:"status"`
+ Manual bool `json:"manual"`
+ LastActivityAt int64 `json:"last_activity_at"`
+ ActiveChannel string `json:"active_channel,omitempty" db:"-"`
+ DNDEndTime int64 `json:"dnd_end_time"`
+ PrevStatus string `json:"-"`
+}
+
+func (s *Status) ToJSON() ([]byte, error) {
+ sCopy := *s
+ sCopy.ActiveChannel = ""
+ return json.Marshal(sCopy)
+}
+
+func StatusListToJSON(u []*Status) ([]byte, error) {
+ list := make([]Status, len(u))
+ for i, s := range u {
+ list[i] = *s
+ list[i].ActiveChannel = ""
+ }
+ return json.Marshal(list)
+}
+
+func StatusMapToInterfaceMap(statusMap map[string]*Status) map[string]interface{} {
+ interfaceMap := map[string]interface{}{}
+ for _, s := range statusMap {
+ // Omitted statues mean offline
+ if s.Status != StatusOffline {
+ interfaceMap[s.UserId] = s.Status
+ }
+ }
+ return interfaceMap
+}