moromi-apns-aws_sns_adapter 0.1.0 → 0.2.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 +4 -4
- data/README.md +98 -0
- data/lib/moromi/apns/aws_sns_adapter/aws_sns_extension.rb +4 -4
- data/lib/moromi/apns/aws_sns_adapter/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2daf222c5f0edca84b597c0d0612e805ac37fab
|
4
|
+
data.tar.gz: 186cfbe33939616e74b5b15039178e89540d8543
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89339d7eab94a846103c4773ff802895b7419c32eadcb88999456045577c5be298cce0e9032e0473cec2f529a5c6eba91b8c08f44fa3518e849baca86b646a20
|
7
|
+
data.tar.gz: 5c74aa4ce478d5dcf04707b12bcc2012cc248799635233d44163b739b507e92b0d1e3e47c849f579c49825b0f654515433d29e314b1c18c27ed511e97140fd5c
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Moromi::Apns::AwsSnsAdapter
|
2
2
|
|
3
|
+
[](http://rubygems.org/gems/moromi-apns-aws_sns_adapter)
|
4
|
+
|
3
5
|
extension for moromi-apns and moromi-aws-sns
|
4
6
|
|
5
7
|
## Installation
|
@@ -18,6 +20,102 @@ Or install it yourself as:
|
|
18
20
|
|
19
21
|
$ gem install moromi-apns-aws_sns_adapter
|
20
22
|
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
- config/initializers/moromi/apns.rb
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
Moromi::Apns.configure do |config|
|
29
|
+
config.identifiers = {
|
30
|
+
production: 'com.example.moromi.apns.production',
|
31
|
+
in_house: 'com.example.moromi.apns.inhouse',
|
32
|
+
debug: 'com.example.moromi.apns.debug'
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
Moromi::Apns::AwsSnsAdapter.configure do |config|
|
37
|
+
config.aws_sns_application_arns = {
|
38
|
+
production: 'arn:aws:sns:ap-northeast-1:000000000000:app/APNS/moromi-apns-production',
|
39
|
+
in_house: 'arn:aws:sns:ap-northeast-1:000000000000:app/APNS/moromi-apns-in_house',
|
40
|
+
debug: 'arn:aws:sns:ap-northeast-1:000000000000:app/APNS_SANDBOX/moromi-apns-debug'
|
41
|
+
}
|
42
|
+
end
|
43
|
+
```
|
44
|
+
|
45
|
+
- config/initializers/moromi/aws_sns.rb
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
module Moromi
|
49
|
+
module Aws
|
50
|
+
module Sns
|
51
|
+
class Client
|
52
|
+
# @param [Moromi::Apns::Environment::Base]
|
53
|
+
def self.create(environment)
|
54
|
+
new(ENV['AWS_ACCESS_KEY'], ENV['AWS_SECRET_ACCESS_KEY'], ENV['AWS_REGION'], environment.aws_sns_application_arn)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
```
|
61
|
+
|
62
|
+
### Register device
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
environment = Moromi::Apns.environment('com.example.moromi.apns.production')
|
66
|
+
arn = Moromi::Aws::Sns::Client.create(environment).register(token: token)
|
67
|
+
# store arn
|
68
|
+
```
|
69
|
+
|
70
|
+
### Send APNS
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
environment = Moromi::Apns.environment('com.example.moromi.apns.production')
|
74
|
+
message = Moromi::Apns::Message::Announce.make(message: 'Message')
|
75
|
+
|
76
|
+
client = Moromi::Aws::Sns::Client.create(environment)
|
77
|
+
client.send_apns_message(arn: arn, message: message, sandbox: environment.sandbox?)
|
78
|
+
```
|
79
|
+
|
80
|
+
- use ActiveJob
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
class AmazonSnsJob < ApplicationJob
|
84
|
+
queue_as :amazon_sns
|
85
|
+
|
86
|
+
def perform(hash)
|
87
|
+
params = hash.with_indifferent_access
|
88
|
+
|
89
|
+
bundle_identifier = params[:bundle_identifier]
|
90
|
+
arn = params[:arn]
|
91
|
+
|
92
|
+
message = Moromi::Apns::Message::Builder.build(params[:data])
|
93
|
+
raise unless message.is_a? Moromi::Apns::Message::Base
|
94
|
+
|
95
|
+
environment = Moromi::Apns.environment(bundle_identifier)
|
96
|
+
|
97
|
+
client = Moromi::Aws::Sns::Client.create(environment)
|
98
|
+
client.send_apns_message(arn: arn, message: message, sandbox: environment.sandbox?)
|
99
|
+
rescue Moromi::Apns::Environment::InvalidEnvironment => e
|
100
|
+
Rails.logger.error e.message
|
101
|
+
rescue Aws::SNS::Errors::EndpointDisabled => e
|
102
|
+
Rails.logger.info e.message
|
103
|
+
end
|
104
|
+
|
105
|
+
# @param [Moromi::Apns::Message::Base] message
|
106
|
+
# @param [String] bundle_identifier
|
107
|
+
# @param [String] arn
|
108
|
+
def self.enqueue_job(bundle_identifier, arn, message)
|
109
|
+
params = {
|
110
|
+
bundle_identifier: bundle_identifier,
|
111
|
+
arn: arn,
|
112
|
+
data: message.serialize
|
113
|
+
}
|
114
|
+
perform_later(params)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
```
|
118
|
+
|
21
119
|
## Development
|
22
120
|
|
23
121
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -1,9 +1,9 @@
|
|
1
1
|
class Moromi::Aws::Sns::Client
|
2
|
-
def send_apns_message(arn
|
3
|
-
send_apns(arn
|
2
|
+
def send_apns_message(arn, message)
|
3
|
+
send_apns(arn, message.to_aws_sns_params)
|
4
4
|
end
|
5
5
|
|
6
|
-
def send_apns_message_to_topic(topic_arn
|
7
|
-
send_apns_to_topic(topic_arn
|
6
|
+
def send_apns_message_to_topic(topic_arn, message)
|
7
|
+
send_apns_to_topic(topic_arn, message.to_aws_sns_params)
|
8
8
|
end
|
9
9
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moromi-apns-aws_sns_adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.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: 2016-10-
|
11
|
+
date: 2016-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|