bmc 1.3.4 → 1.3.5

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: 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