rtr_http_gateway 1.0.0 → 1.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rtr_http_gateway.rb +18 -3
  3. metadata +48 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e7f3bb0c8755e7a4b896b99a52cbc9ab67f70b3b
4
- data.tar.gz: 5567f951beb9d635933740ead8f3b5581effe205
3
+ metadata.gz: c7f479c6f6fe89084408a365d7f293c25168a9f8
4
+ data.tar.gz: 4df2e4f71a3d55c1c6713e5e5829e4ec154ddff6
5
5
  SHA512:
6
- metadata.gz: 436f1b36f82154e821bd6a9ac826e9aa95d4578c655b83ac8cf23674822cc5aeb0e991831cd1d12b20f4315ef41484cb7f675e05146f564c053dcc4596b6c1e4
7
- data.tar.gz: 5576fa9a713cd9cb92b8d768cf55a120b05a6d69dfd1d07053874125c93fa9b31d4bb00ccb0c33580ce40f17535c7c5598182263fabf3dc697da348e1655706b
6
+ metadata.gz: d0a5dafc74f3c20b86546f9c04ba85df7c2913352e3d3fa9e5d1a92ba9b543e4309f8585c018150417e7944775db9d479c2f9b15f8fa19c00e5dc3b95de36c64
7
+ data.tar.gz: fcc6b1303dd532a3a6b96ddd540569b053d58dfa7c624a635f123eb6581eac44fbc934e40af108deca3eedeaf2bf725c245d47ff50f25cc94661d136f7fd7f6c
@@ -6,6 +6,7 @@ module RtrHttpGateway
6
6
  class HttpGatewayException < StandardError
7
7
  end
8
8
 
9
+ # Represents The Delivery receipt status and reason code
9
10
  class DlrQueryResponse
10
11
  def initialize(status, reason_code, msg_id)
11
12
  @status = status
@@ -14,7 +15,7 @@ module RtrHttpGateway
14
15
  end
15
16
  attr_reader :status, :reason_code, :msg_id
16
17
  end
17
-
18
+
18
19
  class HttpGatewayApi
19
20
  def initialize(username, password, service_key, url='https://connect.runthered.com:14004/public_api/sms/gateway/', dlr_url='https://connect.runthered.com:14004/public_api/sms/dlr/')
20
21
  @url = url
@@ -27,6 +28,7 @@ module RtrHttpGateway
27
28
  def do_post_request(url_string, values)
28
29
  uri = URI.parse(url_string)
29
30
  http = Net::HTTP.new(uri.host, uri.port)
31
+ http.use_ssl = true if uri.scheme == 'https'
30
32
  request = Net::HTTP::Post.new(uri.request_uri)
31
33
  request.set_form_data(values)
32
34
  request.basic_auth @username, @password
@@ -37,12 +39,21 @@ module RtrHttpGateway
37
39
  def do_get_request(url_string)
38
40
  uri = URI.parse(url_string)
39
41
  http = Net::HTTP.new(uri.host, uri.port)
42
+ http.use_ssl = true if uri.scheme == 'https'
40
43
  request = Net::HTTP::Get.new(uri.request_uri)
41
44
  request.basic_auth @username, @password
42
45
  response = http.request(request)
43
46
  return response
44
47
  end
45
48
 
49
+ # Send a message to Run The Red
50
+ # @param message [String] the message to send
51
+ # @param to [String] the mobile number to send to
52
+ # @param from_number [String] the shortcode the message will come from
53
+ # @param billing_code [String] the billing code for the message, if required
54
+ # @param partner_reference [String] a client supplied reference string, if required
55
+ # @raise [HttpGatewayException] if a non 200 response is returned by Run The Red
56
+ # @return [String] the message id of the message created in Run The Red's system
46
57
  def push_message(message, to, from_number=nil, billing_code=nil, partner_reference=nil)
47
58
  values = {'message'=>message, 'to'=>to}
48
59
  unless from_number.nil?
@@ -58,9 +69,13 @@ module RtrHttpGateway
58
69
  if response.code != '200'
59
70
  raise HttpGatewayException, response.code
60
71
  end
61
- return response
72
+ return response.body
62
73
  end
63
-
74
+
75
+ # Query a delivery receipt using the message id supplied by Run The Red
76
+ # @param msg_id [String] the message id of the message to check the delivery status of
77
+ # @raise [HttpGatewayException] if a non 200 response is returned by Ru The Red
78
+ # @return [DlrQueryResponse] an object with the status, reason_code and msg_id as attributes
64
79
  def query_dlr(msg_id)
65
80
  values = {'id' => msg_id}
66
81
  params = URI.encode_www_form(values)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtr_http_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Finn Colman
@@ -9,9 +9,50 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2015-09-14 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Wrapper library for calling Run The Red's HTTP gateway from ruby. This
14
- does the work of making the HTTP requests to Run The Red.
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: webmock
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Wrapper library for calling Run The Red's HTTP gateway from ruby.
15
56
  email: finn.colman@runthered.com
16
57
  executables: []
17
58
  extensions: []
@@ -38,8 +79,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
38
79
  version: '0'
39
80
  requirements: []
40
81
  rubyforge_project:
41
- rubygems_version: 2.1.11
82
+ rubygems_version: 2.4.8
42
83
  signing_key:
43
84
  specification_version: 4
44
- summary: Wrapper library for calling Run The Red's HTTP gateway from ruby
85
+ summary: Run The Red HTTP Gateway library
45
86
  test_files: []
87
+ has_rdoc: