class Moceansdk::Modules::Transmitter
Public Class Methods
new(options = nil)
click to toggle source
# File lib/moceansdk/modules/transmitter.rb, line 5 def initialize(options = nil) @options = default_options unless options.nil? @options = @options.merge(options) end end
Public Instance Methods
default_options()
click to toggle source
# File lib/moceansdk/modules/transmitter.rb, line 13 def default_options { base_url: 'https://rest.moceanapi.com', version: '2', verify_ssl: true } end
format_response(response_text, is_xml = false, uri = nil)
click to toggle source
# File lib/moceansdk/modules/transmitter.rb, line 50 def format_response(response_text, is_xml = false, uri = nil) raw_response = response_text # format for v1 if !uri.nil? && @options[:version] == '1' && is_xml if uri == '/account/pricing' response_text = response_text .sub('<data>', '<destinations>') .sub('</data>', '</destinations>') elsif uri == '/sms' response_text = response_text .sub('<result>', '<result><messages>') .sub('</result>', '</messages></result>') end end processed_response = ResponseFactory.create_object( response_text .sub('<verify_request>', '') .sub('</verify_request>', '') .sub('<verify_check>', '') .sub('</verify_check>', '') ) if processed_response['status'] && processed_response['status'] != '0' && processed_response['status'] != 0 processed_response.raw_response = raw_response raise Moceansdk::Exceptions::MoceanError.new(processed_response['err_msg'], processed_response) end # format for v1 if !uri.nil? && is_xml if uri == '/account/pricing' processed_response.destinations = processed_response.destinations.destination elsif uri == '/sms' unless processed_response.messages.message.is_a? Array processed_response.messages.message = [processed_response.messages.message] end processed_response.messages = processed_response.messages.message elsif uri == '/voice/dial' unless processed_response.calls.call.is_a? Array processed_response.calls.call = [processed_response.calls.call] end processed_response.calls = processed_response.calls.call end end processed_response.raw_response = raw_response processed_response end
get(uri, params)
click to toggle source
# File lib/moceansdk/modules/transmitter.rb, line 21 def get(uri, params) request_and_parse_body('get', uri, params) end
make_ssl_context()
click to toggle source
# File lib/moceansdk/modules/transmitter.rb, line 100 def make_ssl_context if @options[:verify_ssl] return nil end ctx = OpenSSL::SSL::SSLContext.new ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE ctx end
post(uri, params)
click to toggle source
# File lib/moceansdk/modules/transmitter.rb, line 25 def post(uri, params) request_and_parse_body('post', uri, params) end
request(method, uri, params)
click to toggle source
# File lib/moceansdk/modules/transmitter.rb, line 35 def request(method, uri, params) params[:'mocean-medium'] = 'RUBY-SDK' # use json if default not set params[:'mocean-resp-format'] = 'json' unless params[:'mocean-resp-format'] url = @options[:base_url] + '/rest/' + @options[:version] + uri if method.casecmp('get').zero? HTTP.follow.get(url, params: params, ssl_context: make_ssl_context) else HTTP.post(url, form: params, ssl_context: make_ssl_context) end end
request_and_parse_body(method, uri, params)
click to toggle source
# File lib/moceansdk/modules/transmitter.rb, line 29 def request_and_parse_body(method, uri, params) res = request(method, uri, params) format_response(res.to_s, params[:'mocean-resp-format'] == 'xml', uri) end