bmc 1.3.4 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36427ac2fef1204c03e2312f26c86ae44adb70e06db9eee946b4ed492981465d
4
- data.tar.gz: a3d8968195b88c1c01672ac01e77a49580afafced26ec4934447645041b305da
3
+ metadata.gz: 9fd16af5d254b75668c6cf72c45955014c4ae316bbf8bfbe0eb551878b3d120e
4
+ data.tar.gz: 749195388d1b99320fc8f121ec7e354ae9fe4ececb208f78b8887af8b292a9ad
5
5
  SHA512:
6
- metadata.gz: cc1d839ab3c11269332e6bfdd21cbd8ecfa08dd32f5e24e8fdba58de35bab82160d06ca8ff1ea59a3c257511f108dcfaf5deb44e6cd865dad482d33efdffd30d
7
- data.tar.gz: 0dcc1dd8dbc696d9dd52aa584322e64d6dd627b00c1b463f0e6c3b3b131173c6368dd48897207c2609c73281f5ff056a93b5272ec11f47cb889ce32cf0065dff
6
+ metadata.gz: e34b1f01c27dcc22543c98f3933328c94cbbeab6d70f01a91b765bcdc52732f6f06d53861a0c6148da108f3171279cb7c50ddb8aac57425ec24be4253d4a3328
7
+ data.tar.gz: 395d06ebd7a05f5d1fcbc7cf26c2c6b2432f2c285c569b787e7991cd2a9bb6b473f5e7d2e17a57586f5e66693c6265954b40e14cfe2ae60641827f52f99fd716
data/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## Next version
4
4
 
5
+ ## v1.4.0
6
+ - Bug fixes
7
+ - Ruby min version is 2.7.2
8
+
9
+ ## v1.3.5
10
+ - Add Sendinblue SMS strategy
11
+
5
12
  ## v1.3.4
6
13
  - Add `all` support to filters `ByKeyValue` and `ByKeyValues`
7
14
 
@@ -44,7 +44,7 @@ class BMC::Filter
44
44
  end
45
45
  end
46
46
 
47
- def respond_to_missing?(method, *)
47
+ def respond_to_missing?(method, include_private = false)
48
48
  super || strategies.key?(method.to_s) || strategies.key?(method.to_s.chomp("="))
49
49
  end
50
50
 
@@ -17,7 +17,7 @@ class BMC::MiniModelSerializer::Serializer < BMC::MiniModelSerializer::Serialize
17
17
  end
18
18
  end
19
19
 
20
- def respond_to_missing?(m, *)
20
+ def respond_to_missing?(m, include_private = false)
21
21
  super || object.respond_to?(m, true)
22
22
  end
23
23
  end
@@ -27,15 +27,15 @@ class BMC::SMS::ApplicationSMS
27
27
  class << self
28
28
  private :new
29
29
 
30
- def method_missing(m, *args)
30
+ def method_missing(m, ...)
31
31
  if respond_to_missing?(m)
32
- new(action_name: m).public_send(m, *args)
32
+ new(action_name: m).public_send(m, ...)
33
33
  else
34
34
  super
35
35
  end
36
36
  end
37
37
 
38
- def respond_to_missing?(m, *)
38
+ def respond_to_missing?(m, include_private = false)
39
39
  super || public_instance_methods.include?(m)
40
40
  end
41
41
  end # class << self
@@ -0,0 +1,2 @@
1
+ class BMC::SMS::DeliveryError < StandardError
2
+ end
@@ -0,0 +1,41 @@
1
+ class BMC::SMS::Strategies::Sendinblue
2
+ URL = "https://api.sendinblue.com/v3/transactionalSMS/sms"
3
+
4
+ DeliveryError = Class.new(BMC::SMS::DeliveryError)
5
+
6
+ attr_reader :api_key
7
+
8
+ def initialize(api_key: ENV["SENDINBLUE_API_KEY"])
9
+ @api_key = api_key
10
+ end
11
+
12
+ def call(data)
13
+ response = HTTP.request(:post, URL, headers: request_headers, json: request_body(data))
14
+
15
+ unless response.code.to_s.start_with?("2")
16
+ raise DeliveryError, "Invalid response: #{response.code} / #{response.body}"
17
+ end
18
+
19
+ true
20
+ end
21
+
22
+ private
23
+
24
+ def request_headers
25
+ {
26
+ :content_type => "application/json",
27
+ :api_key => api_key,
28
+ }
29
+ end
30
+
31
+ def request_body(data)
32
+ from = data[:from] || BMC::SMS.default_from
33
+
34
+ {
35
+ :type => "transactional",
36
+ :sender => from,
37
+ :recipient => data[:to],
38
+ :content => data[:body],
39
+ }
40
+ end
41
+ end
data/lib/bmc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BMC
2
- VERSION = "1.3.4"
2
+ VERSION = "1.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bmc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoit MARTIN-CHAVE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-13 00:00:00.000000000 Z
11
+ date: 2022-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails-i18n
@@ -172,8 +172,10 @@ files:
172
172
  - app/sms/bmc/sms.rb
173
173
  - app/sms/bmc/sms/application_sms.rb
174
174
  - app/sms/bmc/sms/deliver_job.rb
175
+ - app/sms/bmc/sms/delivery_error.rb
175
176
  - app/sms/bmc/sms/message.rb
176
177
  - app/sms/bmc/sms/strategies/amazon.rb
178
+ - app/sms/bmc/sms/strategies/sendinblue.rb
177
179
  - app/sms/bmc/sms/strategies/test.rb
178
180
  - app/sorters/bmc/sorter.rb
179
181
  - app/views/bmc/search/_form.html.slim
@@ -221,7 +223,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
221
223
  requirements:
222
224
  - - ">="
223
225
  - !ruby/object:Gem::Version
224
- version: '0'
226
+ version: 2.7.2
225
227
  required_rubygems_version: !ruby/object:Gem::Requirement
226
228
  requirements:
227
229
  - - ">="