From 26f96b240ddc8cf8c56decea72102b10238e0a43 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Wed, 31 Aug 2016 12:52:14 -0400 Subject: PLT-3462 Add the ability to clear push notifications after channel is viewed (#3834) * Add the ability to clear push notifications after channel is viewed * Fix race condition between updating the mention count and reading it when sending push notifications --- model/push_notification.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'model/push_notification.go') diff --git a/model/push_notification.go b/model/push_notification.go index 666dd8f7d..d4c380291 100644 --- a/model/push_notification.go +++ b/model/push_notification.go @@ -6,12 +6,16 @@ package model import ( "encoding/json" "io" + "strings" ) const ( PUSH_NOTIFY_APPLE = "apple" PUSH_NOTIFY_ANDROID = "android" + PUSH_TYPE_MESSAGE = "message" + PUSH_TYPE_CLEAR = "clear" + CATEGORY_DM = "DIRECT_MESSAGE" MHPNS = "https://push.mattermost.com" @@ -28,6 +32,7 @@ type PushNotification struct { ContentAvailable int `json:"cont_ava"` ChannelId string `json:"channel_id"` ChannelName string `json:"channel_name"` + Type string `json:"type"` } func (me *PushNotification) ToJson() string { @@ -39,6 +44,16 @@ func (me *PushNotification) ToJson() string { } } +func (me *PushNotification) SetDeviceIdAndPlatform(deviceId string) { + if strings.HasPrefix(deviceId, PUSH_NOTIFY_APPLE+":") { + me.Platform = PUSH_NOTIFY_APPLE + me.DeviceId = strings.TrimPrefix(deviceId, PUSH_NOTIFY_APPLE+":") + } else if strings.HasPrefix(deviceId, PUSH_NOTIFY_ANDROID+":") { + me.Platform = PUSH_NOTIFY_ANDROID + me.DeviceId = strings.TrimPrefix(deviceId, PUSH_NOTIFY_ANDROID+":") + } +} + func PushNotificationFromJson(data io.Reader) *PushNotification { decoder := json.NewDecoder(data) var me PushNotification -- cgit v1.2.3-1-g7c22