Class: RtrHttpGateway::HttpGatewayApi
- Inherits:
-
Object
- Object
- RtrHttpGateway::HttpGatewayApi
- Defined in:
- lib/http_gateway/rtr_http_gateway.rb
Instance Method Summary collapse
- #do_get_request(url_string) ⇒ Object
- #do_post_request(url_string, values) ⇒ Object
-
#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/') ⇒ HttpGatewayApi
constructor
A new instance of HttpGatewayApi.
-
#push_message(message, to, from_number = nil, billing_code = nil, partner_reference = nil) ⇒ String
Send a message to Run The Red.
-
#query_dlr(msg_id) ⇒ DlrQueryResponse
Query a delivery receipt using the message id supplied by Run The Red.
Constructor Details
#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/') ⇒ HttpGatewayApi
Returns a new instance of HttpGatewayApi.
20 21 22 23 24 25 26 |
# File 'lib/http_gateway/rtr_http_gateway.rb', line 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/') @url = url @dlr_url = dlr_url @username = username @password= password @service_key = service_key end |
Instance Method Details
#do_get_request(url_string) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/http_gateway/rtr_http_gateway.rb', line 39 def do_get_request(url_string) uri = URI.parse(url_string) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if uri.scheme == 'https' request = Net::HTTP::Get.new(uri.request_uri) request.basic_auth @username, @password response = http.request(request) return response end |
#do_post_request(url_string, values) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/http_gateway/rtr_http_gateway.rb', line 28 def do_post_request(url_string, values) uri = URI.parse(url_string) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if uri.scheme == 'https' request = Net::HTTP::Post.new(uri.request_uri) request.set_form_data(values) request.basic_auth @username, @password response = http.request(request) return response end |
#push_message(message, to, from_number = nil, billing_code = nil, partner_reference = nil) ⇒ String
Send a message to Run The Red
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/http_gateway/rtr_http_gateway.rb', line 57 def (, to, from_number=nil, billing_code=nil, partner_reference=nil) values = {'message'=>, 'to'=>to} unless from_number.nil? values["from"] = from_number end unless billing_code.nil? values["billingCode"] = billing_code end unless partner_reference.nil? values["partnerReference"] = partner_reference end response = do_post_request(@url + @service_key, values) if response.code != '200' raise HttpGatewayException, response.code end return response.body end |
#query_dlr(msg_id) ⇒ DlrQueryResponse
Query a delivery receipt using the message id supplied by Run The Red
79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/http_gateway/rtr_http_gateway.rb', line 79 def query_dlr(msg_id) values = {'id' => msg_id} params = URI.encode_www_form(values) response = do_get_request(@dlr_url + @service_key + '?' + params) if response.code != '200' raise HttpGatewayException, response.code end data = JSON.parse response.body msg_id = data['id'] status = data['status'] reason_code = data['reason'] return DlrQueryResponse.new(status, reason_code, msg_id) end |