sms_center 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/sms_center.rb +49 -0
- data/lib/sms_center/infobip.rb +16 -0
- data/lib/sms_center/nexmo.rb +17 -0
- data/lib/sms_center/telerivet.rb +16 -0
- data/lib/sms_center/twilio.rb +16 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5a7a92d1465355de5b5c7c7b47d35e7cbb0d0771098dcd248385bf515f8d51ae
|
4
|
+
data.tar.gz: 88b441e8e943bb3f4360cf66c63041ae95dd6f7640a58af75f46cd1e10fce2ec
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: af04af0fe66762b242e6e8ab83864c4ddbecbf9d1d20e64147f2fc705742908b60dfe61444e6a1a80e47120d3a8abd6aa74cee94228df753ebe03a208ca30cbe
|
7
|
+
data.tar.gz: ec9bcda385a1664fde66297e5760b0180abd1fe6988253af99feb15ecd8b1716833e39568278bc71e350bab278f0f5558bb032f816dd9bc50fee05ef11284b5a
|
data/lib/sms_center.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
class SmsCenter
|
2
|
+
autoload :Infobip, 'sms_center/infobip'
|
3
|
+
autoload :Nexmo, 'sms_center/nexmo'
|
4
|
+
autoload :Twilio, 'sms_center/twilio'
|
5
|
+
autoload :Telerivet, 'sms_center/telerivet'
|
6
|
+
|
7
|
+
@@platforms = nil
|
8
|
+
@@platform_by_country = nil
|
9
|
+
@@keys = nil
|
10
|
+
|
11
|
+
def self.configure
|
12
|
+
yield self
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.platform_by_country=(platform_by_country)
|
16
|
+
@@platform_by_country = platform_by_country
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.root_number_by_platform=(root_number_by_platform)
|
20
|
+
@@root_number_by_platform = root_number_by_platform
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.keys=(keys)
|
24
|
+
@@keys = keys
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.platform_by_country
|
28
|
+
@@platform_by_country
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.keys
|
32
|
+
@@keys
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.root_number_by_platform
|
36
|
+
@@root_number_by_platform
|
37
|
+
end
|
38
|
+
|
39
|
+
def initialize(content, to_number, country, platform = nil)
|
40
|
+
platform_by_country = DelivereeSms.platform_by_country
|
41
|
+
platform = platform_by_country[country.downcase.to_sym] || platform_by_country[:default] unless platform
|
42
|
+
from_number = DelivereeSms.root_number_by_platform[platform.to_sym]
|
43
|
+
@request = DelivereeSms.const_get(platform, false).new(content, to_number, from_number, @@keys)
|
44
|
+
end
|
45
|
+
|
46
|
+
def send
|
47
|
+
RestClient.post(@request.api_url, @request.body, @request.headers)
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class SmsCenter::Infobip
|
2
|
+
attr_reader :api_url, :body, :headers
|
3
|
+
def initialize(content, to_number, from_number, keys)
|
4
|
+
api_key = keys[:INFOBIP_API_KEY]
|
5
|
+
@api_url = 'https://5mzkg.api.infobip.com/sms/2/text/single'
|
6
|
+
@headers = {
|
7
|
+
'Authorization' => "App #{api_key}",
|
8
|
+
'Content-Type' => 'application/json'
|
9
|
+
}
|
10
|
+
@body = {
|
11
|
+
"to": to_number,
|
12
|
+
"text": content,
|
13
|
+
}
|
14
|
+
@body["from_number"] = from_number if from_number
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class SmsCenter::Nexmo
|
2
|
+
attr_reader :api_url, :body, :headers
|
3
|
+
def initialize(content, to_number, from_number, keys)
|
4
|
+
base64key = Base64.strict_encode64("#{keys[:NEXMO_API_KEY]}:#{keys[:NEXMO_API_SECRET]}")
|
5
|
+
@api_url = 'https://rest.nexmo.com/sms/json'
|
6
|
+
@headers = {
|
7
|
+
'Content-Type' => 'application/json'
|
8
|
+
}
|
9
|
+
@body = {
|
10
|
+
api_key: keys[:NEXMO_API_KEY],
|
11
|
+
api_secret: keys[:NEXMO_API_SECRET],
|
12
|
+
to: to_number,
|
13
|
+
text: content,
|
14
|
+
from: from_number
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class SmsCenter::Telerivet
|
2
|
+
attr_reader :api_url, :body, :headers
|
3
|
+
def initialize(content, to_number, from_number, keys)
|
4
|
+
base64key = Base64.strict_encode64("#{keys[:TELERIVET_API_KEY]}:")
|
5
|
+
@api_url = "https://api.telerivet.com/v1/projects/#{keys[:TELERIVET_PROJECT_ID]}/messages/send"
|
6
|
+
@headers = {
|
7
|
+
'Authorization' => "Basic #{base64key}",
|
8
|
+
'Content-Type' => 'application/json'
|
9
|
+
}
|
10
|
+
@body = {
|
11
|
+
"content": content,
|
12
|
+
"to_number": to_number
|
13
|
+
}
|
14
|
+
@body["from_number"] = from_number if from_number
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class SmsCenter::Twilio
|
2
|
+
attr_reader :api_url, :body, :headers
|
3
|
+
def initialize(content, to_number, from_number, keys)
|
4
|
+
base64key = Base64.strict_encode64("#{keys[:TWILIO_ACCOUNT_SID]}:#{keys[:TWILIO_AUTH_TOKEN]}")
|
5
|
+
@api_url = "https://api.twilio.com/2010-04-01/Accounts/#{keys[:TWILIO_ACCOUNT_SID]}/Messages.json?"
|
6
|
+
@headers = {
|
7
|
+
'Authorization' => "Basic #{base64key}",
|
8
|
+
'Content-Type' => 'application/x-www-form-urlencoded'
|
9
|
+
}
|
10
|
+
@body = {
|
11
|
+
From: from_number,
|
12
|
+
To: to_number,
|
13
|
+
Body: content
|
14
|
+
}
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sms_center
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Deleveree
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-02-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.8'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.8'
|
27
|
+
description: A simple tool to using SMS third party
|
28
|
+
email:
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/sms_center.rb
|
34
|
+
- lib/sms_center/infobip.rb
|
35
|
+
- lib/sms_center/nexmo.rb
|
36
|
+
- lib/sms_center/telerivet.rb
|
37
|
+
- lib/sms_center/twilio.rb
|
38
|
+
homepage: https://github.com/deliveree/sms_center
|
39
|
+
licenses: []
|
40
|
+
metadata: {}
|
41
|
+
post_install_message:
|
42
|
+
rdoc_options: []
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 2.5.0
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
requirements: []
|
56
|
+
rubygems_version: 3.0.6
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: Deliveree!
|
60
|
+
test_files: []
|