summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/mattermost-server/model/status.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2018-02-09 00:11:04 +0100
committerWim <wim@42.be>2018-02-09 00:11:04 +0100
commit5aab158c0b0db64b6136fe2fdaca8b8e9e3bd811 (patch)
tree09bcb3f02f968867c2ca84db1f28594dd0afb967 /vendor/github.com/mattermost/mattermost-server/model/status.go
parent1d33e60e36fa7b0e361990ac347ee8d620d67dcc (diff)
downloadmatterbridge-msglm-5aab158c0b0db64b6136fe2fdaca8b8e9e3bd811.tar.gz
matterbridge-msglm-5aab158c0b0db64b6136fe2fdaca8b8e9e3bd811.tar.bz2
matterbridge-msglm-5aab158c0b0db64b6136fe2fdaca8b8e9e3bd811.zip
Update vendor (github.com/mattermost)
Diffstat (limited to 'vendor/github.com/mattermost/mattermost-server/model/status.go')
-rw-r--r--vendor/github.com/mattermost/mattermost-server/model/status.go60
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/github.com/mattermost/mattermost-server/model/status.go b/vendor/github.com/mattermost/mattermost-server/model/status.go
new file mode 100644
index 00000000..cd9e32ed
--- /dev/null
+++ b/vendor/github.com/mattermost/mattermost-server/model/status.go
@@ -0,0 +1,60 @@
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package model
+
+import (
+ "encoding/json"
+ "io"
+)
+
+const (
+ STATUS_OFFLINE = "offline"
+ STATUS_AWAY = "away"
+ STATUS_DND = "dnd"
+ STATUS_ONLINE = "online"
+ STATUS_CACHE_SIZE = SESSION_CACHE_SIZE
+ STATUS_CHANNEL_TIMEOUT = 20000 // 20 seconds
+ STATUS_MIN_UPDATE_TIME = 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:"-" db:"-"`
+}
+
+func (o *Status) ToJson() string {
+ b, _ := json.Marshal(o)
+ return string(b)
+}
+
+func StatusFromJson(data io.Reader) *Status {
+ var o *Status
+ json.NewDecoder(data).Decode(&o)
+ return o
+}
+
+func StatusListToJson(u []*Status) string {
+ b, _ := json.Marshal(u)
+ return string(b)
+}
+
+func StatusListFromJson(data io.Reader) []*Status {
+ var statuses []*Status
+ json.NewDecoder(data).Decode(&statuses)
+ return statuses
+}
+
+func StatusMapToInterfaceMap(statusMap map[string]*Status) map[string]interface{} {
+ interfaceMap := map[string]interface{}{}
+ for _, s := range statusMap {
+ // Omitted statues mean offline
+ if s.Status != STATUS_OFFLINE {
+ interfaceMap[s.UserId] = s.Status
+ }
+ }
+ return interfaceMap
+}