From 89ac56d4a3c30620bd9156d7a7aeda7e4b006a66 Mon Sep 17 00:00:00 2001 From: Yuka Kobayashi Date: Thu, 27 Dec 2018 14:05:15 +0900 Subject: [PATCH] [SNS] Add APNs key 'mutable-content' (#33) --- sns/helper.go | 7 +++++++ sns/helper_test.go | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/sns/helper.go b/sns/helper.go index fbf7e1c..761a3d3 100644 --- a/sns/helper.go +++ b/sns/helper.go @@ -9,6 +9,7 @@ const ( apnsKeySound = "sound" apnsKeyCategory = "category" apnsKeyBadge = "badge" + apnsKeyMutableContent = "mutable-content" ) const fcmPriorityHigh = "high" @@ -49,6 +50,10 @@ func composeMessageAPNS(msg string, opt map[string]interface{}) (payload string, aps[apnsKeyBadge] = v } + if v, ok := opt[apnsKeyMutableContent]; ok { + aps[apnsKeyMutableContent] = v + } + message := make(map[string]interface{}) message["aps"] = aps for k, v := range opt { @@ -59,6 +64,8 @@ func composeMessageAPNS(msg string, opt map[string]interface{}) (payload string, continue case apnsKeyBadge: continue + case apnsKeyMutableContent: + continue default: message[k] = v } diff --git a/sns/helper_test.go b/sns/helper_test.go index f40f755..24f5943 100644 --- a/sns/helper_test.go +++ b/sns/helper_test.go @@ -56,15 +56,22 @@ func TestComposeMessageAPNS(t *testing.T) { assert.NoError(err) assert.Equal(`{"aps":{"alert":"test","badge":5,"sound":"default"}}`, msg) + delete(opt, "badge") + opt["mutable-content"] = 1 + msg, err = composeMessageAPNS("test", opt) + assert.NoError(err) + assert.Equal(`{"aps":{"alert":"test","mutable-content":1,"sound":"default"}}`, msg) + opt["sound"] = "jazz" opt["category"] = "new_message" opt["badge"] = 5 + opt["mutable-content"] = 1 msg, err = composeMessageAPNS("test", opt) assert.NoError(err) - assert.Equal(`{"aps":{"alert":"test","badge":5,"category":"new_message","sound":"jazz"}}`, msg) + assert.Equal(`{"aps":{"alert":"test","badge":5,"category":"new_message","mutable-content":1,"sound":"jazz"}}`, msg) opt["x-option"] = "foo" msg, err = composeMessageAPNS("test", opt) assert.NoError(err) - assert.Equal(`{"aps":{"alert":"test","badge":5,"category":"new_message","sound":"jazz"},"x-option":"foo"}`, msg) + assert.Equal(`{"aps":{"alert":"test","badge":5,"category":"new_message","mutable-content":1,"sound":"jazz"},"x-option":"foo"}`, msg) }