moromi-aws-sns 0.10.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/moromi/aws/sns/client.rb +9 -8
- data/lib/moromi/aws/sns/message/apns.rb +9 -2
- data/lib/moromi/aws/sns/message/fcm.rb +32 -3
- data/lib/moromi/aws/sns/version.rb +1 -1
- data/moromi-aws-sns.gemspec +2 -2
- metadata +11 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e81f929cb8f988e4a6fcf67076daf379b41fe5d13832f6da060bc1536d055704
|
4
|
+
data.tar.gz: 540652fc01c31c623c40826e01ed2edbcb99937650442a0ade6a7549cd1a8d54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8804c680b64dbe83ec4e0a5e0b66640a6e96c9a33585f0f5ff0cad642b73a7ed6a35baab4f510a781fc1405104d99dc68d3d958dacf25419b28297bf7ba033cd
|
7
|
+
data.tar.gz: 949e8670aa6483c3a77ccb545017a893c68bdd44f1d703755dd602118e7240e24a608c5e466097a64d0b39773fca2ae67457559af429082cd76d28cc90ab3215
|
@@ -4,9 +4,8 @@ module Moromi
|
|
4
4
|
module Aws
|
5
5
|
module Sns
|
6
6
|
class Client
|
7
|
-
def initialize(
|
8
|
-
@
|
9
|
-
@secret_access_key = secret_access_key
|
7
|
+
def initialize(region, credentials: nil)
|
8
|
+
@credentials = credentials
|
10
9
|
@region = region
|
11
10
|
end
|
12
11
|
|
@@ -87,12 +86,14 @@ module Moromi
|
|
87
86
|
|
88
87
|
private
|
89
88
|
|
90
|
-
def credentials
|
91
|
-
@credentials ||= ::Aws::Credentials.new(@access_key_id, @secret_access_key)
|
92
|
-
end
|
93
|
-
|
94
89
|
def client
|
95
|
-
@client ||=
|
90
|
+
@client ||= begin
|
91
|
+
if @credentials
|
92
|
+
::Aws::SNS::Client.new(region: @region, credentials: @credentials)
|
93
|
+
else
|
94
|
+
::Aws::SNS::Client.new(region: @region)
|
95
|
+
end
|
96
|
+
end
|
96
97
|
end
|
97
98
|
|
98
99
|
def call_publish(options)
|
@@ -9,11 +9,13 @@ module Moromi
|
|
9
9
|
attr_reader :content_available
|
10
10
|
attr_reader :mutable_content
|
11
11
|
attr_reader :category
|
12
|
+
attr_reader :thread_id
|
12
13
|
attr_reader :priority
|
13
14
|
attr_reader :type
|
14
15
|
attr_reader :custom_data
|
15
16
|
|
16
|
-
|
17
|
+
|
18
|
+
def initialize(alert:, badge:, sound: 'default', content_available: 1, mutable_content: 0, category: nil, thread_id: nil,
|
17
19
|
priority: 10, type: nil, custom_data: {})
|
18
20
|
@alert = alert
|
19
21
|
@badge = badge
|
@@ -21,6 +23,7 @@ module Moromi
|
|
21
23
|
@content_available = content_available
|
22
24
|
@mutable_content = mutable_content
|
23
25
|
@category = category
|
26
|
+
@thread_id = thread_id
|
24
27
|
@priority = priority
|
25
28
|
@type = type || self.class.name
|
26
29
|
@custom_data = setup_initial_custom_data({type: @type}.merge(custom_data))
|
@@ -33,6 +36,7 @@ module Moromi
|
|
33
36
|
sound: @sound,
|
34
37
|
content_available: @content_available,
|
35
38
|
mutable_content: @mutable_content,
|
39
|
+
thread_id: @thread_id,
|
36
40
|
category: @category,
|
37
41
|
priority: @priority,
|
38
42
|
type: @type,
|
@@ -42,7 +46,10 @@ module Moromi
|
|
42
46
|
|
43
47
|
def to_message_json
|
44
48
|
aps = to_hash
|
45
|
-
%i[custom_data type].each { |k| aps.delete(k) }
|
49
|
+
%i[custom_data type content_available mutable_content].each { |k| aps.delete(k) }
|
50
|
+
aps['content-available'] = @content_available
|
51
|
+
aps['mutable-content'] = @mutable_content
|
52
|
+
aps['thread-id'] = @thread_id
|
46
53
|
@custom_data.merge({aps: aps}).to_json
|
47
54
|
end
|
48
55
|
|
@@ -57,10 +57,27 @@ module Moromi
|
|
57
57
|
}
|
58
58
|
end
|
59
59
|
|
60
|
+
def to_data_hash
|
61
|
+
base = {
|
62
|
+
title: @title,
|
63
|
+
body: @body,
|
64
|
+
android_channel_id: @android_channel_id,
|
65
|
+
icon: @icon,
|
66
|
+
sound: @sound,
|
67
|
+
tag: @tag,
|
68
|
+
color: @color,
|
69
|
+
click_action: @click_action,
|
70
|
+
body_loc_key: @body_loc_key,
|
71
|
+
body_loc_args: @body_loc_args,
|
72
|
+
title_loc_key: @title_loc_key,
|
73
|
+
title_loc_args: @title_loc_args,
|
74
|
+
type: @type
|
75
|
+
}
|
76
|
+
flatten_hash(@custom_data).merge(base)
|
77
|
+
end
|
78
|
+
|
60
79
|
def to_message_json
|
61
|
-
|
62
|
-
%i[custom_data type].each { |k| notification.delete(k) }
|
63
|
-
{notification: notification, data: @custom_data}.to_json
|
80
|
+
{data: to_data_hash}.to_json
|
64
81
|
end
|
65
82
|
|
66
83
|
private
|
@@ -68,6 +85,18 @@ module Moromi
|
|
68
85
|
def setup_initial_custom_data(custom_data)
|
69
86
|
custom_data
|
70
87
|
end
|
88
|
+
|
89
|
+
def flatten_hash(hash)
|
90
|
+
hash.each_with_object({}) do |(k, v), h|
|
91
|
+
if v.is_a? Hash
|
92
|
+
flatten_hash(v).map do |h_k, h_v|
|
93
|
+
h["#{k}_#{h_k}".to_sym] = h_v
|
94
|
+
end
|
95
|
+
else
|
96
|
+
h[k] = v
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
71
100
|
end
|
72
101
|
end
|
73
102
|
end
|
data/moromi-aws-sns.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency 'aws-sdk-sns', '~> 1'
|
25
25
|
spec.add_dependency 'activesupport', ['>= 4.2']
|
26
26
|
|
27
|
-
spec.add_development_dependency "bundler"
|
28
|
-
spec.add_development_dependency "rake", "
|
27
|
+
spec.add_development_dependency "bundler"
|
28
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
29
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
30
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moromi-aws-sns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takahiro Ooishi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-sns
|
@@ -42,30 +42,30 @@ dependencies:
|
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 12.3.3
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 12.3.3
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
requirements: []
|
126
|
-
|
127
|
-
rubygems_version: 2.6.13
|
126
|
+
rubygems_version: 3.1.2
|
128
127
|
signing_key:
|
129
128
|
specification_version: 4
|
130
129
|
summary: AWS SNS client.
|