smess 3.1.2 → 3.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7df5b5ce7458d753d8a71be1dc990c6440090e211a7d56aef2fe260d78280246
4
- data.tar.gz: 5bdef78831d44bb6ca1cd7d39e6812f1f4e4fa257624f5845ac83cdb3fee1593
3
+ metadata.gz: 0e97ae77460f2165f6b5c3f709c9d474aad3c3c219d19130f9f19cac85184947
4
+ data.tar.gz: ed64fdfc02094631c1ae3c4f203b15cb052b1b3814294f99e4c22ed60edaf99b
5
5
  SHA512:
6
- metadata.gz: e6742ad77e0833de159f9d455ce3c5789365e902fe016f9e260b8f50017ffaf37322c7b5b00e67b6e010d66aa291525a35389932a7a666899c5e9625630e0947
7
- data.tar.gz: d74fecb642dfa7c6f43230dd3d7871c16e86640c4e3e4bbdfe8a68ba92dade52aacbc07cd4e0ef0720fa2ba9594e2e4d753899b73d956f9a5cab02bf0b76ccbd
6
+ metadata.gz: baef20801eb0958f6875e72fcd95e132f1a97921aade208b151454398391f5a8caed475381ed7f5708d5198559667fbe5a4c774b01d4f8b4ebc0b117a004f3ba
7
+ data.tar.gz: 0c96995a74d926f30f514d428033bcd74ccd3316e6fbfe66ea84f64b99cabca8e5114ea1e0c7628b944d93071ff98c1ae5707f91265d753129ee180589aa4387
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- smess (3.1.1)
4
+ smess (3.2.0)
5
5
  activesupport (>= 5.2.6, < 8.0.0)
6
6
  clickatell (~> 0)
7
7
  httpi (~> 3.0)
@@ -80,24 +80,25 @@ module Smess
80
80
 
81
81
  attr_accessor :results
82
82
 
83
- def parts
84
- @parts ||= split_parts
85
- end
86
-
87
- def split_parts
88
- Smess.separate_sms(sms.message).reject { |s| s.empty? }
89
- end
90
-
91
83
  def to
92
84
  "+#{sms.to}"
93
85
  end
94
86
 
95
87
  def sender
96
- if messaging_service_sid.present?
97
- {messaging_service_sid: messaging_service_sid}
88
+ {from: from}
89
+ end
90
+
91
+ def dynamic_callback_url
92
+ return callback_url if callback_url.nil? || callback_url.empty? || sms.callback_params.to_h.empty?
93
+
94
+ uri = URI(callback_url)
95
+ query = URI.encode_www_form(sms.callback_params.to_h)
96
+ if uri.query.nil?
97
+ uri.query = query
98
98
  else
99
- {from: from}
99
+ uri.query << "&"+query
100
100
  end
101
+ uri.to_s
101
102
  end
102
103
 
103
104
  def send_one_sms(message)
@@ -105,10 +106,15 @@ module Smess
105
106
  opts = {
106
107
  to: to,
107
108
  body: message,
108
- status_callback: callback_url,
109
+ status_callback: dynamic_callback_url,
109
110
  provide_feedback: true
110
111
  }
112
+ if message.is_a? Hash
113
+ opts.merge!(message)
114
+ opts.delete :body
115
+ end
111
116
  opts.merge!(sender)
117
+ opts.merge!({messaging_service_sid: messaging_service_sid}) if messaging_service_sid.present?
112
118
  response = create_client_message(opts)
113
119
  result = normal_result(response)
114
120
  rescue ::Twilio::REST::RestError => e
@@ -10,7 +10,11 @@ module Smess
10
10
  end
11
11
 
12
12
  def sender
13
- {from: "whatsapp:+#{from}"}
13
+ if from.present?
14
+ {from: "whatsapp:+#{from}"}
15
+ else
16
+ super
17
+ end
14
18
  end
15
19
 
16
20
  end
data/lib/smess/sms.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Smess
2
2
  class Sms
3
3
 
4
- attr_accessor :to, :message, :originator, :output, :results
4
+ attr_accessor :to, :message, :originator, :output, :results, :callback_params
5
5
 
6
6
  def initialize(*args)
7
7
  opts = args.first || {}
@@ -9,6 +9,7 @@ module Smess
9
9
  @message = opts.fetch(:message, "")
10
10
  @originator = opts.fetch(:originator, nil)
11
11
  @output = opts.fetch(:output, :auto).to_sym
12
+ @callback_params = opts.fetch(:callback_params, nil)
12
13
  end
13
14
 
14
15
  def deliver
data/lib/smess/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Smess
2
- VERSION = '3.1.2'
2
+ VERSION = '3.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smess
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.2
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Westin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-04 00:00:00.000000000 Z
11
+ date: 2024-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -162,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
162
  - !ruby/object:Gem::Version
163
163
  version: 1.3.7
164
164
  requirements: []
165
- rubygems_version: 3.2.33
165
+ rubygems_version: 3.4.10
166
166
  signing_key:
167
167
  specification_version: 4
168
168
  summary: A messy SMS messenger supporting every aggregator I have gotten my hands