sms_center 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []