aws_sms 0.2.2 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c413e7374cfbea88e807dfd6857ccd394a1c6520
4
- data.tar.gz: 7cd7c2057ae4a9ca60dc0cfabb692a4b05b55568
3
+ metadata.gz: 9919b56610030d592728da2a1a35be5a5c20c6ea
4
+ data.tar.gz: 5a4481404dea2e827ebb2265872d23c48f6aa981
5
5
  SHA512:
6
- metadata.gz: 1070b470cea2009ce101b2fe7c39623771a3533cf76070c1de6347bc6e746b125547b252aa6dbc76d9fc2c801027b8a1695f3e4ac7ca0244d6eddc7c1717637a
7
- data.tar.gz: 987dfc4c0c08d1fade06bca0a72a5fb9623feacf110c3732c1fb2f58671e1b12af740793a9d012916cbcfbd2f0641f5b3bac7bf3bc9b6738369e117ca521d809
6
+ metadata.gz: 7c7f368396fd6d998220db0257d85ae8abbbdc2716e2d9e5ea03562ca35faaf725d256c59e0ceef7ceb21b5afc8fb8144ac0d3f0772117edd9975fb0a66f464c
7
+ data.tar.gz: 68f38bd47279b5fe34ed951fe8d61a10f394f47ac83df6ef58f82852239ea062f5c3557a0c92fc707e8e2a6bc4a3d541ef62362a068b60448fd6f5c84d85fad5
data/Gemfile CHANGED
@@ -3,3 +3,4 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in aws_sms.gemspec
4
4
  gemspec
5
5
  gem 'aws-sdk'
6
+ gem 'configatron'
@@ -0,0 +1,43 @@
1
+ require 'configatron'
2
+
3
+ class AwsSms
4
+ module Config
5
+
6
+ def self.set_credentials(aws_default_region:, aws_access_key_id: , aws_secret_access_key:)
7
+ configatron.aws_default_region = aws_default_region
8
+ configatron.aws_access_key_id = aws_access_key_id
9
+ configatron.aws_secret_access_key = aws_secret_access_key
10
+ end
11
+
12
+ def self.set_sms_attributes(attributes)
13
+ configatron.sms_attributes = attributes
14
+ end
15
+
16
+ def self.access_key
17
+ ENV['AWS_ACCESS_KEY_ID'] || configatron.aws_access_key_id
18
+ end
19
+
20
+ def self.region
21
+ ENV['AWS_DEFAULT_REGION'] || configatron.aws_default_region
22
+ end
23
+
24
+ def self.secret_key
25
+ ENV['AWS_SECRET_ACCESS_KEY'] || configatron.aws_secret_access_key
26
+ end
27
+
28
+ def self.sms_attributes
29
+ unless configatron.has_key?(:sms_attributes)
30
+ configatron.sms_attributes = { "DefaultSMSType" => 'Transactional' }
31
+ end
32
+ configatron.sms_attributes
33
+ end
34
+
35
+ def self.sms_type
36
+ configatron.default_sms_type
37
+ end
38
+
39
+ def self.default_sender_id
40
+ configatron.default_sender_id
41
+ end
42
+ end
43
+ end
@@ -1,3 +1,3 @@
1
1
  class AwsSms
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.1"
3
3
  end
data/lib/aws_sms.rb CHANGED
@@ -1,27 +1,25 @@
1
1
  require "aws_sms/version"
2
2
  require 'aws-sdk'
3
+ require 'configatron'
4
+ require 'aws_sms/config'
3
5
 
4
6
  class AwsSms
5
7
  class SNSClientError < StandardError; end
6
8
  class InvalidNumber < StandardError; end
7
9
 
8
- def initialize(region: nil, access_key_id: nil, secret_key: nil,
9
- default_sms_type: 'Transactional', default_sender_id: '')
10
- @region = region || ENV['AWS_DEFAULT_REGION']
11
- @access_key_id = access_key_id || ENV['AWS_ACCESS_KEY_ID']
12
- @secret_key = secret_key || ENV['AWS_SECRET_ACCESS_KEY']
13
- @default_sms_type = default_sms_type
14
- @default_sender_id = default_sender_id
10
+ def initialize(region: nil, access_key_id: nil, secret_key: nil, sms_attributes: nil)
11
+ @region = region || Config.region
12
+ @access_key_id = access_key_id || Config.access_key
13
+ @secret_key = secret_key || Config.secret_key
14
+ @default_sms_type = default_sms_type || Config.sms_type
15
+ @default_sender_id = default_sender_id || Config.default_sender_id
16
+ @sms_attributes = sms_attributes || Config.sms_attributes
17
+ validate_args!
18
+ set_config!
15
19
  end
16
20
 
17
21
  def send(phone_number, message)
18
- validate_args!
19
-
20
22
  client.publish(phone_number: phone_number, message: message)
21
- rescue ::Aws::SNS::Errors::InvalidParameter => e
22
- raise InvalidNumber, 'Invalid phone number'
23
- rescue ::Aws::SNS::Errors::ServiceError => e
24
- raise SNSClientError, e.message
25
23
  end
26
24
 
27
25
  private
@@ -29,29 +27,30 @@ class AwsSms
29
27
  :default_sms_type
30
28
 
31
29
  def client
32
- ::Aws.config.update({
33
- region: region,
34
- credentials: Aws::Credentials.new(
35
- access_key_id, secret_key
36
- )
37
- })
38
-
39
- sns = ::Aws::SNS::Client.new()
40
- sns.set_sms_attributes({
41
- attributes: {
30
+ @client ||= begin
31
+ sns = ::Aws::SNS::Client.new()
32
+ sns.set_sms_attributes({ attributes: {
42
33
  "DefaultSMSType" => default_sms_type,
43
34
  "DefaultSenderID" => default_sender_id
44
- }
35
+ }})
36
+ sns
37
+ end
38
+ end
39
+
40
+ def set_config!
41
+ ::Aws.config.update({
42
+ region: region,
43
+ credentials: Aws::Credentials.new(access_key_id, secret_key)
45
44
  })
46
- sns
47
45
  end
48
46
 
49
47
  def validate_args!
50
48
  if region.nil? || access_key_id.nil? || secret_key.nil?
51
- message = 'region, access_key_id, and secret_key arguments must be '\
52
- 'provided. You can explicitly set them when initializing '\
53
- 'AWS::SMS.new or set them in your Environment Variables as: '\
54
- 'AWS_DEFAULT_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY'
49
+ message = 'ERROR: region, access_key_id, and secret_key arguments must '\
50
+ 'be provided. You can explicitly set them when initializing '\
51
+ 'AwsSms, set them in your Environment Variables as: '\
52
+ 'AWS_DEFAULT_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, '\
53
+ 'or use AwsSms::Config.set_credentials'
55
54
  raise ArgumentError, message
56
55
  end
57
56
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_sms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Vogelgesang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-23 00:00:00.000000000 Z
11
+ date: 2017-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,6 +71,7 @@ files:
71
71
  - bin/console
72
72
  - bin/setup
73
73
  - lib/aws_sms.rb
74
+ - lib/aws_sms/config.rb
74
75
  - lib/aws_sms/version.rb
75
76
  homepage: https://github.com/KidA001/aws-sms
76
77
  licenses: