From cf7a05f80f68b5b1c8bcc0089679dd497cec2506 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Sun, 14 Jun 2015 23:53:32 -0800 Subject: first commit --- utils/apns.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 utils/apns.go (limited to 'utils/apns.go') diff --git a/utils/apns.go b/utils/apns.go new file mode 100644 index 000000000..f73c6d8f8 --- /dev/null +++ b/utils/apns.go @@ -0,0 +1,37 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +package utils + +import ( + l4g "code.google.com/p/log4go" + "fmt" + "github.com/anachronistic/apns" + "github.com/mattermost/platform/model" +) + +func FireAndForgetSendAppleNotify(deviceId string, message string, badge int) { + go func() { + if err := SendAppleNotify(deviceId, message, badge); err != nil { + l4g.Error(fmt.Sprintf("%v %v", err.Message, err.DetailedError)) + } + }() +} + +func SendAppleNotify(deviceId string, message string, badge int) *model.AppError { + payload := apns.NewPayload() + payload.Alert = message + payload.Badge = 1 + + pn := apns.NewPushNotification() + pn.DeviceToken = deviceId + pn.AddPayload(payload) + client := apns.BareClient(Cfg.EmailSettings.ApplePushServer, Cfg.EmailSettings.ApplePushCertPublic, Cfg.EmailSettings.ApplePushCertPrivate) + resp := client.Send(pn) + + if resp.Error != nil { + return model.NewAppError("", "Could not send apple push notification", fmt.Sprintf("id=%v err=%v", deviceId, resp.Error)) + } else { + return nil + } +} -- cgit v1.2.3-1-g7c22