semaphore-sms 0.1.4 → 0.1.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 +4 -4
- data/README.md +3 -3
- data/lib/semaphore/sms.rb +2 -2
- data/lib/semaphore/sms/client.rb +35 -4
- data/lib/semaphore/sms/version.rb +1 -1
- data/semaphore-sms.gemspec +1 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53f198e4780b610af7208d4cbbda74017bd5e894
|
4
|
+
data.tar.gz: 02bf0f354a4ce0efb2cc108a44bf6cca1fb5ff2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78e43db86a717c83f663d4589bbe7d3fbde093d3d3f26d6797cdf58cfab67bc3a065d1458b33b5779d7a4a99bce0ce40ddbb616c96d1886a909f6b2aa8cc52cd
|
7
|
+
data.tar.gz: 30fa575fcacd2ae159770bc7ba3cb4083846a70fee63ad442d97ac9c016585119f373abd66c3857abc61c7abe052228dcef264457ca3a8256133db8b6144bf16
|
data/README.md
CHANGED
@@ -21,8 +21,8 @@ Or install it yourself as:
|
|
21
21
|
## Usage
|
22
22
|
|
23
23
|
Run:
|
24
|
-
```
|
25
|
-
|
24
|
+
```ruby
|
25
|
+
rails g semaphore:sms:install
|
26
26
|
```
|
27
27
|
|
28
28
|
Note:
|
@@ -149,7 +149,7 @@ require "semaphore-sms"
|
|
149
149
|
# Note: all params are optional.
|
150
150
|
Format is "YYYY-MM-DD" for date,
|
151
151
|
Format is lowercase (e.g. "globe", "smart") for network,
|
152
|
-
Format is lowercase (e.g. "pending", "success")
|
152
|
+
Format is lowercase (e.g. "pending", "success") for status
|
153
153
|
|
154
154
|
## Requesting for a specific message
|
155
155
|
|
data/lib/semaphore/sms.rb
CHANGED
@@ -3,7 +3,7 @@ require "semaphore/sms/client"
|
|
3
3
|
|
4
4
|
module Semaphore
|
5
5
|
module Sms
|
6
|
-
class ::
|
6
|
+
class ::ConfigurationError < StandardError; end
|
7
7
|
|
8
8
|
class << self
|
9
9
|
attr_writer :api_key, :sender_name
|
@@ -18,7 +18,7 @@ module Semaphore
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def api_key
|
21
|
-
raise
|
21
|
+
raise ConfigurationError, 'API Key is required for GET/POST' unless @api_key
|
22
22
|
@api_key
|
23
23
|
end
|
24
24
|
|
data/lib/semaphore/sms/client.rb
CHANGED
@@ -1,30 +1,40 @@
|
|
1
1
|
require "curb"
|
2
2
|
require "json"
|
3
|
-
require "pry"
|
4
3
|
require "forwardable"
|
4
|
+
require "piliponi"
|
5
5
|
|
6
6
|
module Semaphore
|
7
7
|
module Sms
|
8
|
+
class ::PhoneNumberError < StandardError; end
|
9
|
+
|
8
10
|
class Client
|
9
11
|
extend Forwardable
|
12
|
+
|
10
13
|
Response = Struct.new(:status, :content)
|
11
14
|
|
12
15
|
def initialize(config)
|
13
|
-
raise
|
16
|
+
raise ConfigurationError, 'Config must have api key credentials' unless config.respond_to? :api_key
|
14
17
|
@config = config
|
15
18
|
end
|
16
19
|
|
17
|
-
#TODO: add number validation here. Use piliponi gem.
|
18
20
|
def send(message, recipients, sendername = nil)
|
21
|
+
recipients = clean_and_validate(recipients)
|
22
|
+
|
23
|
+
raise PhoneNumberError, 'Please verify the phonenumber' unless recipients
|
24
|
+
|
19
25
|
options = {
|
20
26
|
message: message,
|
21
27
|
sendername: sendername || sender_name,
|
22
|
-
number: recipients
|
28
|
+
number: recipients
|
23
29
|
}.compact
|
24
30
|
api_post("messages", options)
|
25
31
|
end
|
26
32
|
|
27
33
|
def priority(message, recipients, sendername = nil)
|
34
|
+
recipients = clean_and_validate(recipients)
|
35
|
+
|
36
|
+
raise PhoneNumberError, 'Please verify the phonenumber' unless recipients
|
37
|
+
|
28
38
|
options = {
|
29
39
|
message: message,
|
30
40
|
sendername: sendername || sender_name,
|
@@ -93,6 +103,19 @@ module Semaphore
|
|
93
103
|
end
|
94
104
|
end
|
95
105
|
|
106
|
+
def clean_and_validate(recipients)
|
107
|
+
if recipients.kind_of?(Array)
|
108
|
+
recipients = recipients.reduce([]) do |mem, num|
|
109
|
+
mem << (validate(num) ? clean(num) : false)
|
110
|
+
mem
|
111
|
+
end
|
112
|
+
recipients.include?(false) ? false : recipients.join(",")
|
113
|
+
else
|
114
|
+
recipients = clean(recipients)
|
115
|
+
validate(recipients) ? recipients : false
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
96
119
|
def handle_errors
|
97
120
|
begin
|
98
121
|
yield
|
@@ -100,6 +123,14 @@ module Semaphore
|
|
100
123
|
Response.new(:error, { error: e.message })
|
101
124
|
end
|
102
125
|
end
|
126
|
+
|
127
|
+
def clean(num)
|
128
|
+
Piliponi.clean num
|
129
|
+
end
|
130
|
+
|
131
|
+
def validate(num)
|
132
|
+
Piliponi.plausible? num
|
133
|
+
end
|
103
134
|
end
|
104
135
|
end
|
105
136
|
end
|
data/semaphore-sms.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semaphore-sms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Arnold Go
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.9.4
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: piliponi
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.2.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.2.1
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|