class GmoPayment::ApiRequest
Constants
- DEFAULT_TIMEOUT
- ENCODE_PARAMS
Public Class Methods
new(request_url, request_params, timeout)
click to toggle source
# File lib/gmo_payment/api_request.rb, line 10 def initialize(request_url, request_params, timeout) @request_url = request_url @request_params = request_params @time_out = timeout || DEFAULT_TIMEOUT @requester = nil end
Public Instance Methods
make_request(method = 'post')
click to toggle source
# File lib/gmo_payment/api_request.rb, line 17 def make_request(method = 'post') host, path = split_base_url_and_path @requester = init_http_request(host) begin @requester.start response = if method.casecmp('post').zero? @requester.post(path, to_query_params(@request_params)) else @requester.get(path, to_query_params(@request_params)) end ensure @requester.finish end response end
params2log()
click to toggle source
# File lib/gmo_payment/api_request.rb, line 33 def params2log encode_params(to_query_params(@request_params)) end
Private Instance Methods
encode_params(log_msg)
click to toggle source
Encode params string to *** format Eg: CardNo=1234567890123 to CardNo=*********123
# File lib/gmo_payment/api_request.rb, line 60 def encode_params(log_msg) params_patterns = "(#{ENCODE_PARAMS.join('|')})=\\w+" log_msg.gsub(Regexp.new(params_patterns)) { |match| hide_value(match).to_s } end
hide_value(param_n_value)
click to toggle source
Hide all value if value length <= 10 Otherwise show last 3 characters
# File lib/gmo_payment/api_request.rb, line 67 def hide_value(param_n_value) param, value = param_n_value.split('=') v_hide = '*' * value.length v_hide << value[-3..-1] if value.length > 10 "#{param}=#{v_hide}" end
init_http_request(host)
click to toggle source
# File lib/gmo_payment/api_request.rb, line 44 def init_http_request(host) http = Net::HTTP.new(host, 443) # SSL port http.open_timeout = @time_out http.read_timeout = @time_out http.use_ssl = true http end
split_base_url_and_path()
click to toggle source
# File lib/gmo_payment/api_request.rb, line 39 def split_base_url_and_path uri = URI.parse(@request_url) [uri.host, uri.path] end
to_query_params(options = {})
click to toggle source
# File lib/gmo_payment/api_request.rb, line 52 def to_query_params(options = {}) str = '' options.each { |k, v| str << "#{k}=#{v}&" } str end