bmc 1.3.4 → 1.3.5

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
  SHA256:
3
- metadata.gz: 36427ac2fef1204c03e2312f26c86ae44adb70e06db9eee946b4ed492981465d
4
- data.tar.gz: a3d8968195b88c1c01672ac01e77a49580afafced26ec4934447645041b305da
3
+ metadata.gz: 9c240f97e32a79aa89f2d8bbf57797dda66cfb566d63063a498e97e4e051dfa4
4
+ data.tar.gz: 127af8319136aef6611037276a6d29564938d7109e9914711db36aaecf4fded4
5
5
  SHA512:
6
- metadata.gz: cc1d839ab3c11269332e6bfdd21cbd8ecfa08dd32f5e24e8fdba58de35bab82160d06ca8ff1ea59a3c257511f108dcfaf5deb44e6cd865dad482d33efdffd30d
7
- data.tar.gz: 0dcc1dd8dbc696d9dd52aa584322e64d6dd627b00c1b463f0e6c3b3b131173c6368dd48897207c2609c73281f5ff056a93b5272ec11f47cb889ce32cf0065dff
6
+ metadata.gz: bb20dae217a52ec5733b9d4e5e237099f455fc5003020d1c70d5e4de3aa09bf476e2d63b8cf31e2fd61110a490a010a669872bbef44e6da470caf4ee9e8703eb
7
+ data.tar.gz: da49b6d35eef688c3d6109df347de1d926cd48576c819849fff85db770b63f2f0dcaaed25276bf302bed1701747e61c11c0a02b92599b8fa9b053280f3d31b93
data/CHANGELOG.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  ## Next version
4
4
 
5
+ ## 1.3.5
6
+ - Add Sendinblue SMS strategy
7
+
5
8
  ## v1.3.4
6
9
  - Add `all` support to filters `ByKeyValue` and `ByKeyValues`
7
10
 
@@ -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.3.5"
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.3.5
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-07-13 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