class NetSuite::Rest::Utilities::Request
Constants
- DEFAULT_TIMEOUT
- PRODUCTION_API
- SANDBOX_API
- USE_SSL
Public Class Methods
get(options)
click to toggle source
# File lib/netsuite/rest/utilities/request.rb, line 17 def get(options) email = encode(options.fetch :email) signature = encode(options.fetch :password) sandbox = options.fetch(:sandbox, false) uri = determine_uri(options.fetch(:uri), sandbox) response = make_request(:get, uri, email, signature) [response.code, JSON.parse(response.body)] end
Private Class Methods
auth_header(email, signature)
click to toggle source
# File lib/netsuite/rest/utilities/request.rb, line 46 def auth_header(email, signature) "NLAuth nlauth_email=#{email},nlauth_signature=#{signature}" end
determine_uri(uri, sandbox)
click to toggle source
# File lib/netsuite/rest/utilities/request.rb, line 50 def determine_uri(uri, sandbox) URI((sandbox ? SANDBOX_API : PRODUCTION_API) + uri) end
encode(unencoded_string)
click to toggle source
# File lib/netsuite/rest/utilities/request.rb, line 54 def encode(unencoded_string) CGI.escape(unencoded_string) end
make_request(method_name, uri, email, signature)
click to toggle source
# File lib/netsuite/rest/utilities/request.rb, line 28 def make_request(method_name, uri, email, signature) klass = Module.const_get "Net::HTTP::#{method_name.to_s.capitalize}" method = klass.new(uri) method['AUTHORIZATION'] = auth_header(email, signature) http = Net::HTTP.new(uri.hostname, uri.port) http.use_ssl = USE_SSL http.ssl_version = :TLSv1_2 http.read_timeout = DEFAULT_TIMEOUT # TODO username + password will be outputted to STDOUT if this is enabled # if !NetSuite::Configuration.silent # http.set_debug_output(NetSuite::Configuration.logger) # end http.start { |http| http.request(method) } end